#author("2022-11-23T04:34:26+00:00","default:wikiadmin","wikiadmin") #author("2022-11-23T09:42:12+00:00","default:wikiadmin","wikiadmin") -無償のSSL証明書。自動で更新できるツール付きで驚くほど簡単に導入可能 -ACME(Automatic Certificate Management Environment)というRFCプロトコルに準拠したcertbotが使えるようになったのでほぼ自動化可能 -まずは個別証明書で2020/07の更新を乗り切る。 *参考情報 [#lf95051f] https://qiita.com/Esfahan/items/9f11b38668239d1b52c5 *クライアントツール certbot [#k7f9ee55] https://qiita.com/ariaki/items/5680cb6da6223844af4e EPELパッケージがあれば一発でインストール可能 yum install python2-certbot-apache.noarch 「sudo yum reinstall python-urllib3 sudo yum reinstall python-requests」のエラーが出たのでurllib3とrequestを入れ直した。 sudo pip uninstall requests sudo pip uninstall urllib3 sudo yum remove python-urllib3 sudo yum remove python-requests しかし今度はaws cli が動かなくなった。yumのパッケージが2.7向けで古いのが原因。 **AWS-CLIを仮想環境に入れる [#q8385810] python3 -m venv ~/awscli-v2 curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" ./aws/install --install-dir ~/awscli-v2/aws-cli --bin-dir ~/awscli-v2/bin source ~/awscli-v2/bin/activate **根本対応はpython3でpipで入れる [#n3d0db5b] python3 -m venv ~/certbot-python3 cd certbot-python3/ source bin/activate pip3 install certbot pip3 install --upgrade pip pip3 install awscli certbot renew *証明書発行 [#i6d946f8] 初回はインタラクティブにメールアドレスの登録などがある。 certbot certonly --webroot -w /var/www/www.mywebsite.jp/ -d www.mywebsite.jp *バックアップ&リストア [#v5f87831] -3か月運用してなぜか証明書受け継がれている -/etc/letsencrypt以下をバックアップしてリストアすればよい。 *ドメイン追加 [#f76a477c] The requested apache plugin does not appear to be installed *証明書インストール [#z29b113e] **Apache運用中のときに証明書発行するコマンド [#rd9e2789] 一度にやろうとしたら失敗したので1ドメインごとに取得、最初だけメールアドレスやら規約同意やら 一度にやろうとしたら失敗したので1ドメインごとに取得、最初だけメールアドレスやら規約同意やら。 certbot certonly --webroot -w DOCUMENT_ROOT -d YOUR_DOMAIN 1回目失敗。2回目成功なぜ?/etc/letsencrypt/live/[ドメイン名]/に証明書が作成される Let's Encryptからアクセスされるので空のVirtualHost作ってからやるのが良い。 <VirtualHost *:80> DocumentRoot /var/www/html ServerName node.rutake.com </VirtualHost> certbot certonly --webroot -w /var/www/html/ -d node.rutake.com **作成された証明書 [#ff85339c] |SSLCertificateFile|/etc/letsencrypt/live/wiki.rutake.com| |SSLCACertificateFile|/etc/letsencrypt/live/wiki.rutake.com| |SSLCertificateKeyFile|/etc/letsencrypt/live/wiki.rutake.com/privkey.pem| *ワイルドカード証明書 [#i7b0715a] https://qiita.com/chamaharun/items/566c78bb8a13b4c2bc16 *認証方式 [#mdbb32e2] -HTTP/HTTPS(.well-known/の下に認証ファイルを配置する。RapidSSLと同じ方式) -DNS方式(アクセス権限をかけているWebサーバーに対して有効) **HTTP-01 [#wbeaf8e6] Let's encryptで取得したトークンを指定のディレクトリ以下に配置する。一番楽かな http://example.com/.well-known/acme-challenge/(取得したトークン) **DNS方式 [#od9cc631] DNS-01 Challengeという方式。_acme-challenge.目的ドメインのTXTレコードにトークンを設定する。WEBサーバーが不要なので、ロードバランスしているとかHTTP-01がやりづらいときの選択肢 ***txtレコード追加 [#b520b717] dig -t txt _acme-challenge.rutake.com dig txt rutake.com https://www.xmisao.com/2016/04/18/get-free-certification-by-letsencrypt-dns-01-authentication.html **ACMEv2方式 [#w0015528] _acme-challenge.yourdomain.comのTXTレコードに認証情報を設定する。 https://qiita.com/binzume/items/698d12779b8ad5cda423 https://narusejun.com/archives/23/ *value domain対応 [#q8ddeb7f] txtレコードの動的編集ができないようなので、別のDNSに向ける a tmpdns 別のDNSIP ns _acme-challenge tmpdns.rutake.com. *cloudfrare [#b6307a2e] https://blog.cles.jp/item/10130