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