androidブラウザでエラーが出ないLet's encrypt


さくらのレンタルサーバー「スタンダードプラン」を利用している者です。かなり素人レベルです。

独自ドメインでSSLを利用しようと考え、年1,000円くらいから証明書を購入できることがわかったのですが、無料の「Let's encrypt」でも暗号強度は変わらないという当たり前のことに気付き、Let's encryptを導入しました。

Let's encrypt

最初は、証明書やら何やらよくわからなかったので、ネットオウルさんのSSLBOXを使ってみました。

SSLBOX

とてもわかりやすいインターフェイスで、会員登録は必要ですが無料。無事、自分のサイトがSSL化して、緑の鍵マークがかかりました。なんだかステキだ!

と思っていたら、知人がアクセスしようとしたら「このサイトのセキュリティ証明書には問題があります」「この接続ではプライバシーが保護されません」という警告が表示されました。macOS、Windows、iOSでは特に問題がなかったのですが、androidのブラウザは全滅状態でした。

サイトへのアクセスはできるのですが、SSLがかかっていない状態での接続になってしまうのです。それ以前に「攻撃者が、aaa.bbb.ccc上のあなたの情報(パスワード、メッセージ、クレジット カード情報など)を不正に取得しようとしている可能性があります」などと出て、安心してアクセスできる人なんていないでしょう。

そこで、改めてSSLBOXではなく、Macのほうで証明書の発行をやってみました。こちらの個人サイトを参考にさせていただきました。

さくらレンタルサーバーのサイトを、Let's EncryptでHTTPS化する方法(Mac El Capitan版)

ところが、さくらのサーバーに証明書を設置しても、結局前と様子は変わらず。androidではあの警告が出ます。困っていたところ、個人サイトにこんな記述が。

nginxの.confの設定を変えた。
cert.pemを指定していたところをfullchain.pemへ変更。

[Let’s Encrypt] AndroidのGoogle Chromeでエラーになる場合の対処法

まさかと思って、証明書のインストールでcert.pemでやっていたものをfullchain.pemに交換してみたところ、androidブラウザでの問題があっけなく消えました。

「.pem」の種類は次の通りだそうです。なるほど。

証明書
/etc/letsencrypt/live/<ドメイン名>/cert.pem

証明書+中間CA証明書
/etc/letsencrypt/live/<ドメイン名>/fullchain.pem

秘密鍵
/etc/letsencrypt/live/<ドメイン名>/privkey.pem

中間CA証明書
/etc/letsencrypt/live/<ドメイン名>/chain.pem

Let's Encrypt サーバー証明書の取得と自動更新設定メモ

実際、このような使い方がいいのかよくわからないのですが、今のところ問題は起きていません。