Let’s Encrypt で認証受けようとしたら BASIC認証がかかっている場合にやれば良いこと

昨今は Let’s Encrypt なんていうオープンなSSL証明書が正式版になりとてもSSL通信 https が身近になりました。
私がいつもお世話になっているEXCLOUDさん、エックスサーバーさんでももはやSSL証明書は無料が当たり前なのです。
VPSなどでroot権限があるサーバーを借りている場合は自分でインストールすることも可能です。
今回、VPSでLet’s Encryptの証明書取得作業をしていてエラーになったところがありました。その原因と解決策を備忘録的に書いておきます!

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

Let’s Encryptの使い方・インストール方法なんかはこちらをご覧ください。
https://letsencrypt.jp/
その上で行きます!
認証してもらうためにコマンドを発行します。
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認証をかけたままSSLにする方法は・・・

そこでBASIC認証をかけたままやる場合下記のようにします。
認証対象のディレクトリの .well-known ディレクトリを許可してしまう。
上記の例で言うと
/var/www/html/.well-known に下記を記述した .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
Let's Encrypt

※example.com はダミーです。
SSL証明書がこんな簡単に利用できるとテストサイトなどでも気軽にhttps化出来て便利です!
ホントたすかるわ〜〜〜。

この記事が気に入ったら
いいね ! しよう

Twitter で