先の投稿で、Jetty9のSSLについては、
https://hirooka.pro/?p=5266
を見たらできそうと書いたのだけど、jettyのバージョンが上がっており、若干違っていたのでまとめておきます。
- keystoreの作成
- sslの設定
keystoreの作成
Jettyでは、PKCS12フォーマットでないと使えないので、サーバの秘密鍵ファイル、サーバ証明書からPKCS12形式のファイルを作成します。
openssl pkcs12 -inkey hogehoge.com.key -in hogehoge.com.crt -export -out jetty.pkcs12
以下のようにhogehoge.com.keyを作成したときのパスフレーズを聞かれるので入力します。
Enter pass phrase for hogehoge.com.key:
次にExport用のパスワードを設定します。
Enter Export Password:
Verifying - Enter Export Password:
PKCS12形式のファイルをkeystoreに変換します。
keytool -importkeystore -srckeystore jetty.pkcs12 -srcstoretype PKCS12 -destkeystore keystore
以下のようにkeystoreのパスワードの設定を求められます。
Enter destination keystore password:
Re-enter new password:
次に、上で設定したExport用のパスワードを入力します。
Enter source keystore password:
問題がなければ以下のように表示されてkeystoreが作成されます。
Entry for alias 1 successfully imported.
Import command completed: 1 entries successfully imported, 0 entries failed or cancelled
最後にkeystoreをjettyのetc以下に設置します。
mv keystore jetty/etc/
sslの設定
ポートはデフォルトで8443を利用します。
変更する場合は、jetty/etc/jetty-ssl.xmlの
<Set name="port"><Property name="jetty.ssl.port" deprecated="ssl.port" default="8443" /></Set>
の部分を変更します。
keystore関係の設定は、jetty-ssl-context.xmlを修正します。
keystoreがjetty/etc以下にない場合は、
<Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.sslContext.keyStorePath" deprecated="jetty.keystore" default="etc/keystore"/></Set>
を変更します。次に、keystoreのパスワードとExport用のパスワードを変更します。
<Set name="KeyStorePassword"><Property name="jetty.sslContext.keyStorePassword" deprecated="jetty.keystore.password" default="keystoreのパスワード"/></Set>
<Set name="KeyManagerPassword"><Property name="jetty.sslContext.keyManagerPassword" deprecated="jetty.keymanager.password" default="Export用のパスワード"/></Set>
最後に、jetty/start.iniの適当な場所に以下の行を追加してSSLを有効にします。
--module=https
変更後はjettyを再起動したら完了です。
8443ポートの開放も忘れずに。