Let’s Encryptで取得したSSL証明書をTomcatで使用する手順。CentOS
Let’s Encrypt とは無料でSSL証明書を発行してくれるサービスおよびその認証局のことを指します。
今回はCentOS上で稼働するTomcatにLet’s Encryptを利用して取得したSSL証明書をインストールする手順を紹介します。
Certbot をインストール
通常、Let’s Encryptではクライアントソフトウェアである、Certbotを使用してSSL証明書の取得・更新作業を行います。
# wget https://dl.eff.org/certbot-auto # chmod a+x certbot-auto # ./certbot-auto
Certbotを実行してSSL証明書を取得
以下のようにコマンドを実行してSSL証明書を取得します。
#certbot-auto certonly --manual -d <証明書を取得したいドメイン> -m <メールアドレス>
次に以下のように訊かれますので「y」を入力してEnterを押します。
すると、次のように文字列を含んだファイルを”http://<自分のドメイン>/.well-known/acme-challenge/”の配下に作成することを要求されます。(“Press Enter to Continue”と表示されますが、まだここではEnterを押してはいけません。)
別のSSHコンソール(Puttyなど)でエディタ(vimなど)を開き、指定された内容とファイル名でファイルを作成し、”http://<自分のドメイン>/.well-known/acme-challenge/”の配下に置きます。
この後、実際に外部から上記パスのファイルが参照できるかブラウザを使用して確認します。
ファイルの内容が表示されることを確認後、上記“Press Enter to Continue”が表示されているコンソールでEnterを押します。
“Congratulations!”の文字が出現するとSSL証明書の取得成功です。
取得した証明書は通常“/etc/letsencrypt/live/<ドメイン名>/”配下にあります。
- サーバ証明書 (公開鍵) cert.pem
- 中間証明書 chain.pem
- サーバ証明書と中間証明書が結合されたファイル fullchain.pem
- 秘密鍵 privkey.pem
Let’s Encryptで取得した証明書のTomcatへのインストール
取得した証明書を Tomcat に入れる場合に keystore (JKS) 形式にする必要があります。以下はopensslコマンドとkeytoolコマンドを使用した例です。
# openssl pkcs12 -export -in cert.pem -inkey privkey.pem -certfile chain.pem -out pkcs12.pfx -passout pass:changeit # keytool -importkeystore -srckeystore pkcs12.pfx -srcstoretype PKCS12 -srcstorepass changeit -destkeystore keystore.jks -deststoretype JKS -deststorepass changeit
作成した“keystore.jks”ファイルをTomcatに配置します。ここでは例として“/tomcat/conf/keystore”ディレクトリに配置します。
# mv keystore.jks /tomact/conf/keystore
server.xmlファイルを修正して証明書のパスを指定します。
# vi /tomcat/conf/server.xml
変更例:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="1000" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="conf/keystore/keystore.jks" keystorePass="changeit"/>
変更後はTomcatサービスをリスタートしてください。