Dropbox

** ZeroSSLを使用した新しい記事を書きました。

更新) Android6からのアクセスに問題があったので使用する証明書の部分を更新(2016/MAY/2)

無料でSSL証明書が取得出来るLet’s Encryptで、このブログをhttps化してみました。このブログは共用サーバーであるCoreserver上にあるため、独立したサーバーで稼働している場合とは設定の方法がことなります。その辺りを簡単にまとめてみました。

まずLet’s Encryptは証明書を発行するドメイン名を実際に運用していることを確認して証明書を発行します。それを自動化すめためのスクリプトが用意されています。具体的にはドメイン名で運用さているサーバーの特定の場所にスクリプトが生成したファイルを置き、それがLet’s Encryptからhttpアクセスで正しく取得できるかどうかを確認することで認証されます。このあたりの事情を理解しておくと実際の作業が分かりやすくなります。

Coreserver上で直接、証明書を取得することは最初から諦めて、root権限を持つLinuxサーバー上で証明書を取得しCoreserverの管理画面で証明書をインストールするという方法で行いました。Windows上で証明書を取得することも可能みたいです。

証明書を取得する前提条件は、自分のドメインを持っている、DNSでドメイン名からIPアドレスが正しく取得できる、ドメイン名でアクセス出来るwebサーバーにファイルを置くことが出来ることです。

[ Client Softwareの導入 ]

Linux上でLet’s EncryptのGetting Startedページにあるようにgithubからパッケージをcloneして、./letscript-auto –helpを実行します。実行中にroot権限が必要になりますので、わたしは最初からrootになって実行しました。help画面が表示されるまでに必要なモジュールが多数導入されます。

[ 証明書の取得 ]

letscript-autoを実行するサーバーとwebサーバーが同一であればwebrootとかstandaloneというオプションで簡単に証明書が発行されます。わたしの場合はwebサーバーはcoreserver上にありますので、一手間かけねばなりません。

わたしの実行したコマンドは以下の通りです。

./letsencrypt-auto certonly --manual -d www.nkozawa.com

画面の指示に従って進めると、webサーバーの特定の場所にファイルを作るように画面に指示がでます。指定されたディレクトリ下にランダムな内容のランダムなファイル名のファイルをhttpでアクセス出来るように置きます。準備が出来たらletscript-autoの実行を進めると認証が完了し証明書が取得されます。以下のような画面が出れば成功です。

IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/www.nkozawa.com/fullchain.pem. Your cert will
expire on 2016-07-29. 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

./letsencrypt-auto certonly –manual -d www.nkozawa.com 30.49s user 1.35s system 24% cpu 2:08.81 total

メッセージにある通り /etc/letscript/live/www.nkozawa.com/ 下に必要な証明書ファイルのリンクが出来ていました。

[ Coreserverに証明書を導入する ]
一つのユーザーで複数ドメインを使用する設定になっていないる事が前提です。具体的には「SNIを使用したSSLの設定(コアサーバー)」のドメイン設定画面のようになっていればOKです。もし複数ドメインを使用しない設定で有った場合、public_httmlの内容をpublic_html/www.nkozawa.com/下に移動るなどの手順も必要です。

上のリンクにある通りに設定します。証明書に関してはプライベートキーの欄には取得したprivekey.pemの内容を貼り付けます。プライベートキーのパスワード欄は適当な文字を入れました。発行された証明書欄にはcert.pemfullchain.pemの内容を貼り付けて完了です。中間証明書は任意となっていますが、ここにchina.pemを貼り付けないとAndroid6からのアクセスが出来ませんでした。

以上でhttpsによるアクセスが可能となりました。

Letencrypt

実際の運用にあたっては問題もあります。アマゾンなどのリンクにhttp://が含まれています。これのhttp部分を無くして//だけにしないと全く表示されません。こまめに修正するかツールを作って一括変換しないといけません。

証明書の期限が短いのでLet’s Encryptでは自動更新を推奨していますが、Coreserverでは不可能ですので定期的に手動で設定しなければなりません。

そもそもhttps化したのは興味本位です。googleのページランクが上がるという噂もありますが、個人ブログでhttpsを使用する事の必要性がどの程度あるのか良く分かりません。

ということも有り、httpからhttpsへのリダイレクト等は行っていません。将来的にどうするかは、しばし考えたいと思います。

 

Trackback

2 comments untill now

  1. […] [ Lets Encrypt証明書再取得 ] 再取得も新規取得も手作業であれば同じ事ですが、前回の記事を書いた後に随分と便利なクライアントが数多く公開されました。今回はそのなかの一つであるze […]

  2. […] [ Lets Encrypt証明書再取得 ] 再取得も新規取得も手作業であれば同じ事ですが、前回の記事を書いた後に随分と便利なクライアントが数多く公開されました。今回はそのなかの一つであるze […]

Add your comment now