スキップしてメイン コンテンツに移動

投稿

ラベル(Let's Encrypt)が付いた投稿を表示しています

Let's Encrypt の更新プログラム certbot が自動更新してくれない

Let's Encrypt を使いサーバの通信を行っているが、 自動更新するように cron の設定をしてもエラーが出て更新されない。 サーバはwebサーバとメールサーバで証明書を使っているがwebサーバの方しか更新されない。 エラーログを確認してみると原因がわかった。 次のファイルに更新時に使う設定が書かれている。 /etc/letsencrypt/renewal/ドメイン名.conf この設定が authenticator = standalone となっていた。 standaloneだと、webサービスを停止しないと更新ができない模様。 そこで、その部分をコメントアウトし、authenticator と installer を書き加えた。 [renewalparams] #authenticator = standalone authenticator = nginx installer = nginx これで、更新テストをしたらうまくいった。 # certbot-auto renew --dry-run 強制的に更新するなら次のように行う。 # certbot-auto renew --force-renewal certbot - GitHub https://github.com/certbot/certbot

Let's Encrypt 等のSSL/TSL証明書の詳細確認方法 on Linux

opensslコマンドを用いて証明書の有効期限などを確認する方法。 次の2つについて手順を書いておく。 外部のサーバの証明書を確認 ローカルに保存された証明書の確認 外部のサーバの証明書を確認 クライアントとして証明書を確認する。 blogger.com の証明書を見るには次のコマンドで確認できる。 $ openssl s_client -showcerts -connect www.blogger.com:443 有効期限を見るには次のようにするとnoAfterに有効期限が表示される。 $ openssl s_client -connect www.blogger.com:443 | openssl x509 -noout -enddate ブラウザでチェックサイトから証明書を確認も出来る。 DigiCert® SSL Installation Diagnostics Tool https://www.digicert.com/help/ ローカルに保存された証明書の確認 サーバへsshなどでログインし、直接保存されている証明書を確認する。 Let's Encrypt を利用しているなら証明書の保存場所は /etc/letsencrypt/live/ドメイン名/cert.pem となっているはず。 有効期限は次のコマンドで確認できる。 # openssl x509 -noout -dates -in /etc/letsencrypt/live/example.jp/cert.pem 詳細な情報は -dates オプションを -text に変更する。 # openssl x509 -noout -text -in /etc/letsencrypt/live/example.jp/cert.pem

webサイトが開けなくなった。

nginx で公開しているWebサイトがブラウザで見られなくなった。 このWebサーバは nginx + Let's Encrypt でhttps接続をするように設定してあるが、 開くと次のようなエラーが表示される ========== このサイトは安全に接続できません 無効な応答が送信されました。 ERR_SSL_PROTOCOL_ERROR ========== 三日前に表示できたのに突如上記表示がされるようになった。 19-7-22 表示できた 19-7-24 cronによりLet's Encryptの自動更新 19-7-25 表示できない 調べると自動更新後から見れなくなっている可能性が高い。 取り敢えず次のサイトを参考に対処した。 [参考] Let's Encryptの自動更新でERR_SSL_PROTOCOL_ERROR発生 https://qiita.com/MasaGon/items/c6719e723e9fb57e3a4f 結論をいえば、 Let's Encrypt導入時に自動的に作られたファイルを修正した。 修正したファイル  /etc/nginx/conf.d/default.access.conf 追加した内容  ssl_session_tickets  off; この一行を追加してnginxを再起動したら復旧した。 原因はセッションの手続きに問題があったようだ。 https://github.com/jwilder/nginx-proxy/issues/580 この件を調べている最中にSSLのテストを行うサイトで確認をした。 [参考] Chromeで「このサイトは安全に接続できません」となり接続エラーとなる場合の解除方法は?  https://aprico-media.com/posts/1592 SSL Server Test  https://www.ssllabs.com/ssltest/ SSL Server Test では SSLの証明書に登録されているドメイン名について色々調べてくれるようだ。

Let's Encrypt 自動更新 で怒られた

ここで Let's Encrypt を導入したことを書きました。 Webサーバ に Let's Encrypt を導入し https で接続できるようにした https://atsreport.blogspot.com/2019/04/web-lets-encrypt-https.html サーバ更新したので設定をいじっていてLet's Encryptの更新コマンドを実行した。 すると、パーミッションを直せと怒られた。 # certbot-auto renew certbot-auto has insecure permissions! To learn how to fix them, visit https://community.letsencrypt.org/t/certbot-auto-deployment-best-practices/91979/ 詳細はリンク先をみてもらうとして、大雑把に言うと  root 以外に触れないようにしろ! ということだった。 具体的には、インストール先 /usr/local/bin/certbot-auto を推奨しており、 certbot-auto の所有者をrootにして、root以外から書き込めないようにとのこと。 # chown root /path/to/certbot-auto # chmod 0755 /path/to/certbot-auto とりあえず、所有者とパーミッションだけ直しておいた。 Certbot-auto deployment best practices https://community.letsencrypt.org/t/certbot-auto-deployment-best-practices/91979

Webサーバ に Let's Encrypt を導入し https で接続できるようにした

稼働中の Webサーバ に Let's Encrypt を導入してみた。 環境は、CentOS 6 に Nginx でWebサービスを可動済み。 次の順に手続きをおこなう。 Let's Encrypt のインストール Nginx の設定 証明書の更新 Let's Encrypt のインストール 次のコマンドでダウンロードする。 $ git clone https://github.com/certbot/certbot 次のコマンドでインストールが始まる。 このコマンドの実行時点でWebが外からつながるようになっていることと、443ポートがアクセスできるようにしておく必要がある。 # ./certbot/certbot-auto --debug このコマンドの中でyumが起動し必要なプログラムをインストールし、 その後、Let's Encrypt の設定をきいてくるので入力する。 この時に設定ファイルからドメイン名を拾ってくるので、 どのドメイン名のアクセスを https で繋げる必要があるか答える。 また、この設定の中で Nginx の設定を自動で変更するかきいてくる。 ここで自動変更を選ぶと Nginx の設定ファイルが書き換えられる。 Nginx の設定 インストール時に設定変更しなかったのなら手動で変更する必要がある。 ここまでで https での接続が出来るはずなので確認する。 証明書の更新 Let's Encrypt の証明書は有効期限が 90日なので、cronで更新できるようにする。 # certbot-auto renew このコマンドで証明書の更新がされる。 ただし、有効期限まで30日を切らないと更新されない模様。 強制的に更新するなら次のようにするとよい。 # certbot-auto renew --force-renew [参考] Let's Encrypt+NginxでSSL証明書発行、自動更新の設定方法 https://qiita.com/yudsuzuk/items/83115236e9ca184326d2