[wiki]さくらのレンタルサーバ上でLet's Encryptを利用する方法について

さくらのレンタルサーバ上でLet's Encryptを利用する方法について

Let's Ecnryptは現在βテスト中のサービスで、DV(Domain Validation)のTLSやSSL用の電子証明書を無料で発行してくれるサービスです。
現在はRSA鍵の電子証明書のみ対応していますが、2016年の上半期にはECDSA鍵1)の電子証明書2)も発行できるようになるようなりました3)
ECDSAの証明書の入手について詳しくは[スクリプト有]Let’s EncryptにECDSA(ECC)の鍵を作成してもらう | 純規の暇人趣味ブログや、楕円曲線暗号を使ったCSRを生成して、Let's Encryptをつかう場合 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。などを参考に設定してください。

2017/10/17より公式でLet's Encpryptに対応しました(RSAタイプ)。
詳しくは【無料SSL】サーバコントロールパネルからの導入手順 – さくらのサポート情報を参考にして設定してください。
以下は資料として残しますがわざわざこんなことしなくても1クリックで導入でき更新も自動です。

準備

root権限があるFreeBSDかLinux系マシン1台。
FreeBSDならpkg(py27-letsencrypt)かCentOSならyum等もしくはGitHubからLet's Encryptの自動設定用スクリプトをcloneするなりして入手してください。
また、sshfsもpkg(fusefs-sshfs)等で入手してください。
詳細なインストールコマンドは簡単なので割愛します。

証明書の取得

マウントする先を決めて下さい、今回は/home/exampleにマウントするとしています。

mkdir /home/example

を実行しておいてください。
紹介例の接続先はIDがusernameで、この場合ホストはusername.sakura.ne.jpとなります。

sshfs

# sshfs -o idmap=user username@username.sakura.ne.jp: /home/example/

接続の際、公開鍵等のパスワードを求められたら指定のものを入力してください。
問題が無ければ何も出ずマウントできているはずです。

letsencrypt

# letsencrypt certonly --webroot --webroot-path /home/example/www/example.jp/ --text --agree-tos --email hoge@example.jp -d www.example.jp -d example.jp

–webroot-path で指定するパスは、さくらのレンタルサーバをマウントしている先のパスになります。なので/home/?????/www/というwebデータが置いてあるパスを指定してください。
また、今回はわかりやすく/home/exampleとしてマウントしていますが、好きな場所にマウントすることも当然できます。
成功すると

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /usr/local/etc/letsencrypt/live/www.example.jp/fullchain.pem. Your
   cert will expire on 2015-XX-XX. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - If you like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

以上のような画面がでてきますので保存先のパスと有効期限をメモしておきます。
保存先パスにあるpemファイルは後ほどの設定で使いますので、cat/scp等で入手しておいてください。

証明書の設定

さくらのレンタルサーバのコントロールパネルから「ドメイン設定」開きます。
登録済の対象ドメインの(SSL証明書の)「登録」をクリックします。
秘密鍵の設定画面では、鍵の作成を行わず、アップロードを選んで下さい。
対象の鍵を先ほど取得した秘密鍵(privkey.pem)を選択し「アップロード」をクリックします。
続いて、証明書のインストール画面になりますのでcert.pmの内容をコピー&ペーストしてください。
この際、fullchain.pem(証明書+中間証明書入り)ではないことに注意してください。
「送信」をクリックします。
「* SNISSLが利用可能です *」という画面になりますので、「証明書の表示」枠内にある、「中間証明書のインストール」をクリックします。
「* 中間証明書のインストール *」画面になりますので、chain.pemの内容をコピー&ペーストしてください。
「送信」をクリックします。

「* SNISSLが利用可能です *」画面に戻ります。この際、「中間証明書の表示」枠が正しく表示されているか確認してください。
画面上部の「□有効化の確認」にチェックを入れ「新しい設定を有効化する」をクリックしてください。
以上で、証明書の導入は完了です。

証明書の確認

https:⁄⁄example.jp/等httpsを指定してURLを確認するか、先ほどのコントロールパネル内の「ドメイン設定」の中から対象ドメインの「表示」をクリックすると確認ができます。
「表示」がない場合は正しく設定できていませんので手順の見直しや確認をしてください。なお、途中で登録作業を中断しても「□中止の確認」にチェックを入れ「新しい設定を無効化する」をクリックしていないと設定内容が残っています。
無事SSLで通信できたことを確認。
その他、SSL Server Test (Powered by Qualys SSL Labs)で対応している暗号化プロトコルも確認できます。

証明書の更新

上記手順を毎回手動でやる必要があります。
また更新時letsencryptのスクリプトを呼び出す際は以下のようなコマンドになります。

# letsencrypt certonly --webroot --webroot-path /home/example/www/example.jp/ --email hoge@example.jp -d www.example.jp -d example.jp

課題

更新時は上記手順を手動でやる必要があります。
できたら自動化したいのでそのうち自動化スクリプトを書く。

備考

2015年末ぐらいまではTLSv1しか対応していなかったのに、いつのまにかレンタルサーバ側もTLSv12に対応するようになっていた(2016/2月頃確認)

tech/memo/sakura_s-rentalserver-with-lets_encrypt.txt · 最終更新: 2017/10/17 16:07 by noel
Copyright (c) 2011-, Secret Society Across, and etc. All Rights Reserved.
Driven by DokuWiki FreeBSD Recent changes RSS feed Valid CSS Valid XHTML 1.0