Let's Encrypt

Let’s EncryptでHttps Tomcatへの設定メモ

Let’s Encrypt が4/12 正式サービスが開始されました。
3月に初回の証明書を作成して3か月で期限切れとなり
サイトへのアクセスができなくなりました。
証明書の期限が切れるといったいどうなるのかと思い、期限切れになるのを
待っていたのですがしっかりとアクセスできなくなりました。
そこで証明書の再取得を行ったのでメモしておきます。

まず、当初のLetsencryptクライアントからCertbotクライアントに変更になったので
gitでソースインストールからやり直しです。(環境はcentos7 apache 2.4.6 tomcat 7.0.54)

項番1.から4.まではLet’s Encrypt 総合ポータル

に詳しく説明されています。この総合ポータル本当にすばらいです。感謝いたします。

1.Certbotのインストール

git clone https://github.com/certbot/certbot

2.実行環境の作成

cd certbot
certbot-auto

正常に処理が終了するとGUI画面が表示されるので「no」を選択

3.証明書ファイルの作成

systemctl stop httpd (apacheの停止)
./certbot-auto certonly –standalone -d [サーバーのドメイン]

Congratulations!….のメッセージが表示されたら成功です。
以下のファイルが生成されます。

  • サーバ証明書
    etc/letsencrypt/archive/www.fantassoft.net/certN.pem
  • 中間証明書
    etc/letsencrypt/archive/www.fantasoft.net/chainN.pem
  • サーバー証明書と中間証明書が結合されたファイル
    etc/letsencrypt/archive/www.fantassoft.net/fullchainN.pem
  • 秘密鍵
    etc/letsencrypt/archive/www.fantassoft.net/privekeyN.pem

また上記のシンボリックリンクがetc/letscrypt/liveにそれぞれ作成されます。

4.apacheの設定

/etc/httpd/conf.d/ssl.conf
apacheバージョンが2.4.8 未満なので以下の3つのファイルの指定が必要。

  • SSLCertificateFile /etc/letsencrypt/live/[サーバーのドメイン]/cert.pem
  • SSLCertificateKeyFile /etc/letsencrypt/live/[サーバーのドメイン]/privkey.pem
  • SSLCertificateChainFile /etc/letsencrypt/live/[サーバーのドメイン]/chain.pem

5.tomcat用キーストアファイルの作成

  • まずPEM形式からPKCS#12形式に変換
    openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out fullchain_and_key.p12 -name tomcat
    ->パスワードを求めてくるので入力
    (パスワードを同時に指定する場合は-password pass:<pass> を付加するようです)
  • 次にキーストア形式で出力する
    keytool -importkeystore -deststorepass <pass> -destkeypass <pass> -destkeystore MyDSKeyStore.jks -srckeystore fullchain_and_key.p12 -srcstoretype PKCS12 -srcstorepass <前コマンドで指定したパスワード> -alias tomcat

6.tomcat server.xmlに以下を設定します。

5.で生成されたMyDSKeyStore.jksと生成時に指定したパスワードを指定します。

<Connector port=”8443″ protocol=”org.apache.coyote.http11.Http11Protocol”
maxThreads=”150″ SSLEnabled=”true” scheme=”https” secure=”true”
clientAuth=”false” sslProtocol=”TLS”
keystoreFile=”/path/to/MyDSKeyStore.jks” keystorePass=”<pass>”
keyAlias=”tomcat” keyPass=”<pass>”/>

 

追記 2018.01.28

1. yumを使ってインストール(centos7の場合)

# yum install enablerepo=epel -y certbot

2.certbot実行

yumでインストールした場合はcertbot-autoコマンドではなくcertbotコマンドになります。またウェブサーバーを起動したまま実行する場合はwebrootプラグインを使用します。

# certbot certonly --webroot -w /var/www/html -d [サーバーのドメイン]

3.定期的な更新

# certbot renew

初回に使用したwebrootプラグインが有効になります。

 

カテゴリー : その他, ブログ.