CentOS6.8 で let’s encrypt の自動更新が出来なくなった。
自動更新に必要な certbot-auto というプログラムが Python 3.5 以上を必要としているが、サポート期限切れである CentOS6.8 では現在 Python 3.4 までしかインストールできないようだ。
SSL証明書の更新ができないと困るので、一時的にlet’s encrypt から さくらのSSL に乗り換えることにした。
さくらのSSL(990円) のSSL証明書はマルチドメインに対応していないので、ドメインの数だけ証明書の発行が必要になる。
参考:
最初に必要なことはCSRの作成(更新時は前回のCSRが裁量できるのでこの工程は不要)
CSR(Certificate Signing Request)とは、SSLサーバ証明書を導入するサーバ上で生成する証明書の署名リクエスト。
SSL証明書の発行に必要なCSRのつくり方
openssl が必要なのでインストールされているか確認
openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
OK
秘密鍵を置くディレクトリに移動。
/etc/ssl というフォルダがあったのでその中に sakurassl-sslkey というディレクトリを作ってそこに保存した。
移動
cd /etc/ssl/sakurassl-sslkey
OpenSSL のコマンドで RSA 暗号方式の秘密鍵を作成する場合
openssl genrsa コマンドを利用
秘密鍵ファイルの生成
openssl genrsa -out ○○○.key 2048
これで秘密鍵ができる
CSR生成
--------------------------------------------
openssl req -new -key ○○○.key -out ○○○.csr
--------------------------------------------
openssl genrsa -out wwwexamplecom.key 2048
openssl genrsa -des3 2048 > www.*****.jp.key
必須項目(他は空欄でいい)
--------------------------------------------------------------
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Aichi
Locality Name (eg, city) [Default City]:Nagoya
Organization Name (eg, company) [Default Company Ltd]:Nomu
Common Name (eg, your name or your server's hostname) []:利用するドメイン
--------------------------------------------------------------
入力が終わるとCSRができる。
これを使ってさくらのSSLの証明書を購入。
SSLの証明書を完了させるにはドメインの所有者確認があるので、以下のURLに認証ファイルをアップロードする。
http://example.com/.well-known/pki-validation/[ランダムな文字列].txt
購入後メールで証明書が届くのでサーバーにアップロードして
/etc/httpd/conf.d/vhost-le-ssl.conf ファイルを書き換える。
↑vhost-le-ssl の le はレッツエンクリプトの意味だと思う。
レッツエンクリプトをインストール時に作られたファイルを流用したことになる。
書き換える値は三つ(更新時はサーバー証明書と中間証明書のみ)
SSLCertificateFile /etc/pki/tls/certs/localhost.crt ← 秘密鍵のファイルを指定
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key ← サーバー証明書のファイルを指定
SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt ← 中間証明書のファイルを指定(中間証明書が無い場合は省略可)
構文チェック
httpd -t
apache 再起動
#root権限がある状態で再起動しないとエラーでapacheが止まる!
sudo service httpd restart
証明書が更新されていることを確認。