====== 14 Let's Encrypt無料のSSL証明書 ====== ※certbot-autoが2021年1月以降全てのディストリビューションで非推奨になりました。 \\ 今のところ証明書の更新について問題ないですが、今後のアップデートが行われない。 \\ 下記の利用をオススメします。 Docker版: [[06_virtualization:05_container:10_docker_let_s_encrypt]] 通常版: [[01_linux:02_www:18_let_s_encrypt_certbot]] すごく簡単に、無料のSSL証明書が利用できる。 ===== 自動設定ツールを用意 ===== # curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto # chmod 700 /usr/bin/certbot-auto ===== 証明書作成 ===== # certbot-auto certonly \ # 証明書の作成 --webroot \ # 既存のウェブサーバを使うモードを選択 -w /home/hogehoge/public_html \ # ドキュメント・ルートのパス -d hogehoge.fl8.jp \ # 認証するドメイン名 --email <メール>@<アドレス> # メールアドレス登録(証明書期限切れの通知用) # ll /etc/letsencrypt/live/jp010.public.develop.kumolabo.com/* lrwxrwxrwx 1 root root 57 11月 11 17:02 2016 /etc/letsencrypt/live/hogehoge.fl8.jp/cert.pem -> ../../archive/hogehoge.fl8.jp/cert2.pem lrwxrwxrwx 1 root root 58 11月 11 17:02 2016 /etc/letsencrypt/live/hogehoge.fl8.jp/chain.pem -> ../../archive/hogehoge.fl8.jp/chain2.pem lrwxrwxrwx 1 root root 62 11月 11 17:02 2016 /etc/letsencrypt/live/hogehoge.fl8.jp/fullchain.pem -> ../../archive/hogehoge.fl8.jp/fullchain2.pem lrwxrwxrwx 1 root root 60 11月 11 17:02 2016 /etc/letsencrypt/live/hogehoge.fl8.jp/privkey.pem -> ../../archive/hogehoge.fl8.jp/privkey2.pem 後は、confに設定するだけ SSLCertificateFile /etc/letsencrypt/live/hogehoge.fl8.jp/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/hogehoge.fl8.jp/privkey.pem SSLCACertificateFile /etc/letsencrypt/live/hogehoge.fl8.jp/chain.pem ===== 自動更新 ===== 更新 certbot-auto renew --post-hook "systemctl reload httpd" 強制更新 certbot-auto renew --force-renew --post-hook "systemctl reload httpd" ==== アクセス制御してある場合 ==== 実際にアクセスされるのは、 .well-known/acme-challeng以下のファイルです。 .well-knownを作ってやって、そこに.htaccessを置き許可していてやればOK $ cat .well-known/.htaccess Order Deny,Allow Allow from all ==== Cronの場合 ==== ※post-hook先の実行もcronでpathが通ってないとエラーになって更新できません。 0 0 * * * scl enable python27 'bash /usr/bin/certbot-auto renew --post-hook "/sbin/service httpd reload" ' ※mailでも利用する場合、postfix dovecotもリロードする。 下記は週1回リロードの場合 0 0 * * 6 /etc/init.d/postfix reload 0 0 * * 6 /etc/init.d/dovecot reload ===== エラー ===== === 「python-virtualenv」「python-pip」が無いためのエラー === /usr/bin/certbot-auto: line 583: virtualenv: command not found epel.repoをenableしてやればOK === python2.7 === /root/.local/share/letsencrypt/lib/python2.6/site-packages/cryptography/__init__.py:26: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of cryptography will drop support for Python 2.6 これは、Pythonが2.6で有るためのエラー Python2.7をインストールしてやれば解決 [[01_linux:01_net:39_centos6_python27]] そのまま実行すると、古いライブラリを読んでエラーが出るので 一度下記のフォルダは削除してあげる # rm -rvf /root/.local/share/letsencrypt {{tag>SSL}}