目次

Let's Encrypt から DigiCert のSSL証明書に移行

基本的に公式サイトにある「インストール手順書」通りに進めれば問題ない。
今回は、先方から「SSL証明書」「秘密鍵」「中間証明書」を頂いたので、それらをインストールする手順のみを記載。
実施した環境は
CentOS 7.5 / Apache 2.4

1.ファイルをFTPなどでサーバにアップロードする

  1. # 証明書を確認
  2. $ sudo openssl x509 -in /home/centos/cert.cer -noout -subject
  3. $ sudo openssl x509 -in /home/centos/chain.cer -noout -subject

今回この時点で「no start line:pem_lib.c:707:Expecting: TRUSTED CERTIFICATE」というエラーが発生。 詳細はリンク先に記載(単にファイルの保存形式が「BOM有、CR+LF」になっていただけ)。

証明書に問題がなければ、証明書を移動する。

  1. # ssl.conf の設定確認
  2. $ sudoedit /etc/httpd/conf.d/ssl.conf
  3. 100 SSLCertificateFile /etc/pki/tls/certs/localhost.crt
  4. 107 SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
  5. 116 #SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
  6.  
  7. # デフォルトでは、/etc/pki/tls/certs/ と /etc/pki/tls/private/ が使われているので、そこに移動する
  8. $ sudo mv /home/centos/cert.cer /etc/pki/tls/certs
  9. $ sudo mv /home/centos/chain.cer /etc/pki/tls/certs
  10. $ sudo mv /home/centos/key.pem /etc/pki/tls/private
  11.  
  12. # パーミッションと所有権の変更
  13. $ sudo chmod 600 /etc/pki/tls/certs/cert.cer
  14. $ sudo chown root:root /etc/pki/tls/certs/cert.cer
  15.  
  16. $ sudo chmod 600 /etc/pki/tls/certs/chain.cer
  17. $ sudo chown root:root /etc/pki/tls/certs/chain.cer
  18.  
  19. $ sudo chmod 600 /etc/pki/tls/private/key.pem
  20. $ sudo chown root:root /etc/pki/tls/private/key.pem
  21.  
  22. # 確認
  23. $ ls -la /etc/pki/tls/certs
  24. $ ls -la /etc/pki/tls/private

2.証明書のパスを書き換える

Let's Encrypt の証明書をインストール時に「vhost-le-ssl.conf」が作成されていたので、今回はそのパスを変更する。

  1. $ sudoedit /etc/httpd/conf.d/vhost-le-ssl.conf
  2. # 古いSSL証明書をコメントアウト
  3. # SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
  4. # SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
  5. # SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
  6.  
  7. # 新しいSSL証明書
  8. SSLCertificateFile /etc/pki/tls/certs/cert.cer
  9. SSLCertificateKeyFile /etc/pki/tls/private/key.pem
  10. SSLCertificateChainFile /etc/pki/tls/certs/chain.cer

このとき、以下の設定ファイルをインクルードしている箇所はコメントアウトせずに残す。

  1. Include /etc/letsencrypt/options-ssl-apache.conf

このファイルには以下のような、SSLに関する設定や、LogFormatなどが記載されているので、そのまま使わせて貰います。

  1. $ sudoedit /etc/letsencrypt/options-ssl-apache.conf
  2. SSLEngine on
  3. SSLProtocol all -SSLv2 -SSLv3

ちなみに私は、この設定ファイルのインクルードをコメントアウトしてしまい、Apache の再起動に失敗し、暫く悩む羽目になりました。 詳細は Apache の再起動に失敗 に記載。

3.Apache の再起動

構文チェックを行い、問題なければ再起動する。

  1. # 構文チェック
  2. apachectl configtest
  3.  
  4. # 再起動
  5. sudo apachectl graceful

サイトにアクセスし、証明証が新しくなっていることを確認する。

4.使わなくなった Let's Encrypt のSSL証明書を削除

  1. # SSL証明書を確認
  2. sudo ls -la /etc/letsencrypt/live/example.com
  3.  
  4. # SSL証明書を削除
  5. sudo certbot revoke --cert-path=/etc/letsencrypt/live/example.com/cert.pem
  6.  
  7. # 削除されたことを確認
  8. sudo ls -la /etc/letsencrypt/live

これで完了です。