====== Let's Encrypt から DigiCert のSSL証明書に移行 ====== 基本的に公式サイトにある「インストール手順書」通りに進めれば問題ない。\\ 今回は、先方から「SSL証明書」「秘密鍵」「中間証明書」を頂いたので、それらをインストールする手順のみを記載。\\ 実施した環境は\\ CentOS 7.5 / Apache 2.4 ==== 1.ファイルをFTPなどでサーバにアップロードする ==== # 証明書を確認 $ sudo openssl x509 -in /home/centos/cert.cer -noout -subject $ sudo openssl x509 -in /home/centos/chain.cer -noout -subject 今回この時点で[[サーバ:SSL証明書:no start line pem_lib.c 707 Expecting TRUSTED CERTIFICATE|「no start line:pem_lib.c:707:Expecting: TRUSTED CERTIFICATE」というエラーが発生]]。 詳細はリンク先に記載(単にファイルの保存形式が「BOM有、CR+LF」になっていただけ)。 証明書に問題がなければ、証明書を移動する。 # ssl.conf の設定確認 $ sudoedit /etc/httpd/conf.d/ssl.conf 100 SSLCertificateFile /etc/pki/tls/certs/localhost.crt 107 SSLCertificateKeyFile /etc/pki/tls/private/localhost.key 116 #SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt # デフォルトでは、/etc/pki/tls/certs/ と /etc/pki/tls/private/ が使われているので、そこに移動する $ sudo mv /home/centos/cert.cer /etc/pki/tls/certs $ sudo mv /home/centos/chain.cer /etc/pki/tls/certs $ sudo mv /home/centos/key.pem /etc/pki/tls/private # パーミッションと所有権の変更 $ sudo chmod 600 /etc/pki/tls/certs/cert.cer $ sudo chown root:root /etc/pki/tls/certs/cert.cer $ sudo chmod 600 /etc/pki/tls/certs/chain.cer $ sudo chown root:root /etc/pki/tls/certs/chain.cer $ sudo chmod 600 /etc/pki/tls/private/key.pem $ sudo chown root:root /etc/pki/tls/private/key.pem # 確認 $ ls -la /etc/pki/tls/certs $ ls -la /etc/pki/tls/private ==== 2.証明書のパスを書き換える ==== Let's Encrypt の証明書をインストール時に「vhost-le-ssl.conf」が作成されていたので、今回はそのパスを変更する。 $ sudoedit /etc/httpd/conf.d/vhost-le-ssl.conf # 古いSSL証明書をコメントアウト # SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem # SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # 新しいSSL証明書 SSLCertificateFile /etc/pki/tls/certs/cert.cer SSLCertificateKeyFile /etc/pki/tls/private/key.pem SSLCertificateChainFile /etc/pki/tls/certs/chain.cer このとき、以下の設定ファイルをインクルードしている箇所はコメントアウトせずに残す。 Include /etc/letsencrypt/options-ssl-apache.conf このファイルには以下のような、SSLに関する設定や、LogFormatなどが記載されているので、そのまま使わせて貰います。 $ sudoedit /etc/letsencrypt/options-ssl-apache.conf SSLEngine on SSLProtocol all -SSLv2 -SSLv3 ちなみに私は、この設定ファイルのインクルードをコメントアウトしてしまい、Apache の再起動に失敗し、暫く悩む羽目になりました。 詳細は [[サーバ:SSL証明書:Apache の再起動に失敗|Apache の再起動に失敗]] に記載。 ==== 3.Apache の再起動 ==== 構文チェックを行い、問題なければ再起動する。 # 構文チェック apachectl configtest # 再起動 sudo apachectl graceful サイトにアクセスし、証明証が新しくなっていることを確認する。 ==== 4.使わなくなった Let's Encrypt のSSL証明書を削除 ==== # SSL証明書を確認 sudo ls -la /etc/letsencrypt/live/example.com # SSL証明書を削除 sudo certbot revoke --cert-path=/etc/letsencrypt/live/example.com/cert.pem # 削除されたことを確認 sudo ls -la /etc/letsencrypt/live これで完了です。