Let's Encrypt を Windows Apacheで使ってみる。
無償で利用できるSSL証明書発行サービス Let's Encryptがpublic betaになったので試してみます。
なお、作業はWebサーバ上で行いましょう。
Windows用クライアントはletsencrypt-win-simple というのをgithubで公開されてる方がいますのでこれを利用しましょう。
IISなら何も考えずにいけるっぽいですが(IIS使ってないので知りません)。
何はともあれ、ダウンロードして解凍します。 別途.NetFramework4.0以上が必要なのでまだインストールしてなければインストールしておきましょう。
解凍して出てきたletsencrypt.exeを実行します。
Enter an email address (not public, used for renewal fail notices):
最初にこんな感じでE-mailを聞かれるのでちゃんと受け取れるメールアドレスを入力しましょう。
その後、
Do you agree to https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf? (Y/N)
利用規約に同意しますか?と聞かれますので、読んで問題なければYと入力し、同意しましょう。
Scanning IIS 7 Site Bindings for Hosts IIS Version not found in windows registry. Skipping scan. No targets found. M: Generate a certificate manually. A: Get certificates for all hosts Q: Quit Which host do you want to get a certificate for:
あとはIISがないとこんな感じで、 手動で生成しますか?みたいなことを聞かれますので Mを入力して手動で証明書の生成を行うようにしましょう。
Enter a host name:
ドメイン名を入力して。
Enter a site path (the web root of the host for http authentication):
apacheの設定ファイルに記載されている DocumentRootを記載します。
すると、認証用のファイルがDocumentRoot以下に設置されて、向こうからそこにアクセスが来て、アクセスができれば
認証されて秘密鍵、公開鍵証明書、中間CA証明書が
c:\Users\user名\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\
以下に現れます。
ドメイン名-key.pem
ドメイン名-crt.pem
ca-XXXXXXX.pem
あとはこれをapacheのSSL設定に
SSLCertificateFile "path-to ドメイン名-crt.pem" SSLCertificateKeyFile "path-to ドメイン名-key.pem" SSLCertificateChainFile "path-to ca-XXXXXXX.pem"
とやってあげれば大丈夫です。 apacheを再起動してアクセスしてみましょう。