この記事の所要時間: 40

昨今は Let’s Encrypt なんていうオープンなSSL証明書が正式版になりとてもSSL通信 https が身近になりました。

私がお世話になっております。EXCLOUDさん、エックスサーバーさんでももはやSSL証明書は無料が当たり前なのです。

VPSなどでroot権限があるサーバーを借りている場合は自分でインストールすることも可能です。

今回、VPSでLet’s Encryptの証明書取得作業をしていてエラーになったところがありました。その原因と解決策を備忘録的に書いておきます!

証明書取得対象のディレクトリにBASIC認証がかかっていた

Let’s Encryptの使い方・インストール方法なんかはこちらをご覧ください。

Let's Encrypt 総合ポータル
https://letsencrypt.jp/

無料SSLサーバ証明書「Let's Encrypt」の総合ポータルサイト。導入方法の解説や技術情報の和訳など。

その上で行きます!

認証してもらうためにコマンドを発行します。

certbotインストールしたディレクトリに移動後

./certbot-auto certonly --webroot \
-w /var/www/html -d example.com \
-m hoge@example.com \
--agree-tos

エラーが出ました・・・

Failed authorization procedure. example.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://example.com 〜〜〜

※example.com はダミーです。

これはBASIC認証がかかっててダメだった・・・ってエラーです。

そこでBASIC認証をかけたままやる場合下記のようにします。

認証対象のディレクトリの .well-known ディレクトリを許可してしまう。

上記の例で言うと
/var/www/html/.well-know に下記を記述した .htaccess ファイルを置きます。

Satisfy any
order allow,deny
allow from all

これでもう一回やってみます!

こんなメッセージが出たら認証完了!!

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/example.com/fullchain.pem. Your cert
   will expire on 2017-01-18. To obtain a new or tweaked version of
   this certificate in the future, simply run certbot-auto again. To
   non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

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

そうしたらあとは SSLの設定をssl.confなどに記述してサーバー再起動で完了!

SSLEngine on
SSLProtocol all -SSLv2

# Let's Encrypt
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

※example.com はダミーです。

SSL証明書がこんな簡単に利用できるとテストサイトなどでも気軽にhttps化出来て便利です!Let's Encrypt
ホントたすかるわ〜〜〜。