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証明書はマルチドメインに対応していないので、ドメインの数だけ証明書の発行が必要になる。

参考:

1つのサーバーで複数の証明書が使える、SNIって?|SSL基礎知識|Zenlogic - 株式会社IDCフロンティアのレンタルサーバー
1つのサーバーで複数のSSL証明書が使えるSNIの機能についてご紹介。中小企業のためのITソリューションサービス「Zenlogic(ゼンロジック)」。

最初に必要なことは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

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

タイトルとURLをコピーしました