2018年6月26日火曜日

WindowsでTomcat8.5を使って開発するときのオレオレ証明書用のキー生成

Javaのbinフォルダにkeytoolというコマンドラインアプリケーションものがあるので、これを使う。

まず当然、コマンドプロンプトでこれを実行する。

そんで、
keytool -genkeypair -keystore c:/tomcatkeystore.jks -keyalg RSA -alias localhost -validity 3650
パスワードはどうでもいいので"password"と答え、あとの設問はreturnのみで答える。最後の確認だけyを答えないとキャンセルになってしまうが。

Tomcatのserver.xmlの以下を書き換え。(コメントアウトされてるのを解除し、SSLHostConfigの属性値を追加)
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="c:/tomcatkeystore.jks"
                         type="RSA"
                         certificateKeystorePassword="password"
                         certificateKeyAlias="localhost"
                         />
        </SSLHostConfig>
    </Connector>

これで、「安全でないホスト」としての接続はできた。

2018年4月10日火曜日

Tomcat 8.5のファイルアップロードサイズ上限変更

デフォルトが2MBになっている。それで、それ以上のファイルをアップロードするとFileUploadBase$SizeLimitExceededExceptionというのが出る。

maxSwallowSizeというのを設定すればよいということだが、それをやっても以前としてエラーが出る。いろいろ悩んだが、最後にmaxPostSizeも設定したら上手く行った。

<Connector ... maxSwallowSize="5000000" maxPostSize="5000000" ....>

みたいな。

この2つを同時に設定すると上手くいかないという情報もあったのだが、maxSwallowSizeというプロパティ自体が新しかった頃の情報かと思うので、その後にTomcatの仕様が変わったのかも知れない。ともかく、両方設定したらうまくいった。