let's encrypt から さくらのSSL に乗り換え

CentOS6.8 で let's encrypt の自動更新が出来なくなった。
自動更新に必要な certbot-auto というプログラムが Python 3.5 以上を必要としているが、サポート期限切れである CentOS6.8 では現在 Python 3.4 までしかインストールできないようだ。

SSL証明書の更新ができないと困るので、一時的にlet's encrypt から さくらのSSL に乗り換えることにした。

さくらのSSL(990円) のSSL証明書はマルチドメインに対応していないので、ドメインの数だけ証明書の発行が必要になる。

参考:

https://www.idcf.jp/rentalserver/user-support/knowledge/ssl/sni.html

最初に必要なことはCSRの作成

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 再起動
---------------------------------------------------
service httpd restart
---------------------------------------------------

証明書が更新されていることを確認。