#author("2025-03-22T00:27:01+09:00;2025-03-19T02:50:44+09:00","default:tanopro","tanopro") #author("2025-03-22T00:28:14+09:00;2025-03-19T02:50:44+09:00","default:tanopro","tanopro") #html{{ <h1 style="color: red; background-color: #FFFFCC; padding: 20px;"> Let's Encrypt(レッツ・エンクリプト) </h1> <div class="alert alert-warning" role="alert"> 無料のSSL証明書を発行しているサービス </div> }} //---------------------------------------- #contents //---------------------------------------- //---------------------------------------- // 用語の定義 * Let's Encrypt(レッツ・エンクリプト)とは? [#definition] Let's Encryptでは、90日間有効なDV(Domain Validation)SSL証明書を2つの認証方式(ドメイン認証、DNS認証)で提供しています。 - Let's Encrypt - Google 検索 https://www.google.com/search?q=Let%27s+Encrypt - Let's Encrypt - Wikipedia https://ja.wikipedia.org/wiki/Let%27s_Encrypt >Let's Encrypt(レッツ・エンクリプト)は、非営利団体のInternet Security Research Group(ISRG)により運営されている証明書認証局で、TLSのX.509証明書を無料で発行している。 世界最大の認証局であり、4億を超えるウェブサイトで使用されている。 証明書の有効期間は90日で、期間内のいつでも証明書の再発行を行うことができる。 発行はすべて自動化されたプロセスで行われており、安全なウェブサイトを実現するために、証明書の作成、受け入れテスト、署名、インストール、更新を手動で行う必要があった問題を克服するように設計されている。 2016年4月に正式に開始された。 ** 公式サイト [#r92190a0] - Let's Encrypt https://letsencrypt.org/ja/ //---------------------------------------- * NginxでSSLの設定 [#r5c6d4c6] Ubuntu 24.04でLet's EncryptのSSL証明書を発行し、Nginxで利用する方法を説明します。 ** 1. 必要なパッケージをインストール [#i23d83fd] まず、NginxとCertbot(Let's Encryptのクライアント)をインストールします。 sudo apt update sudo apt install -y nginx certbot python3-certbot-nginx または sudo apt install nginx certbot python3-certbot-nginx 出力例 Reading package lists... Done Building dependency tree... Done Reading state information... Done nginx is already the newest version (1.24.0-2ubuntu7.1). The following additional packages will be installed: python3-acme python3-certbot python3-configargparse python3-icu python3-josepy python3-parsedatetime python3-rfc3339 Suggested packages: python-certbot-doc python3-certbot-apache python-acme-doc python-certbot-nginx-doc The following NEW packages will be installed: certbot python3-acme python3-certbot python3-certbot-nginx python3-configargparse python3-icu python3-josepy python3-parsedatetime python3-rfc3339 0 upgraded, 9 newly installed, 0 to remove and 16 not upgraded. Need to get 1,097 kB of archives. After this operation, 5,699 kB of additional disk space will be used. Do you want to continue? [Y/n] Y ←Yと入力 ** 2. Nginxの設定ファイルを作成/修正 [#kd7df55b] Nginxの設定ファイルを作成または修正し、HTTP(ポート80)でサイトが動作するようにします。 sudo nano /etc/nginx/sites-available/mydomain.net 以下の内容で保存してください(適宜変更してください)。 server { listen 80; server_name mydomain.net www.mydomain.net; root /var/www/mydomain.net; index index.html index.htm; location / { try_files $uri $uri/ =404; } } ** 3. 設定を有効化し、Nginxを再起動 [#h56e3778] sudo ln -s /etc/nginx/sites-available/mydomain.net /etc/nginx/sites-enabled/ sudo nginx -t # 設定チェック sudo systemctl restart nginx ** 4. Let's EncryptのSSL証明書を取得 [#f78737e5] 次に、Let's Encryptの証明書を発行します。 sudo certbot --nginx -d mydomain.net -d www.mydomain.net - 途中で ''メールアドレス'' の入力を求められます。 - 利用規約に同意するよう求められます("A" を入力)。 - ''HTTP→HTTPSリダイレクトを有効にするかどうか'' 聞かれた場合は、希望に応じて選択します。 正常に証明書が取得できると、Nginxの設定が自動的に変更され、HTTPSが有効になります。 ** 5. 証明書の更新を自動化 [#xc7a3826] Let's Encryptの証明書は90日ごとに期限切れになります。自動更新が正常に機能しているか確認します。 sudo certbot renew --dry-run エラーがなければ、証明書の自動更新は問題ありません。 ''cron''や''systemd''のタイマーで自動更新されるため、特に手動設定は不要です。 ** 6. 設定確認 [#d4ace0a5] Nginxの設定が正しく反映されているか確認します。 sudo systemctl status nginx sudo nginx -t また、ブラウザで `https://mydomain.net` にアクセスし、証明書が正しく適用されているか確認してください。 ** 追加設定(オプション) [#mc696679] *** ''強制HTTPSリダイレクトを手動設定したい場合'' [#he0c25ec] 「/etc/nginx/sites-available/mydomain.net」を編集し、HTTPリクエストをHTTPSにリダイレクトするようにします。 server { listen 80; server_name mydomain.net www.mydomain.net; return 301 https://$host$request_uri; } sudo nginx -t sudo systemctl restart nginx 以上で、Let's EncryptのSSL証明書を発行し、Nginxで利用する設定が完了です! 🚀 //---------------------------------------- * Let's Encryptに登録しているメールアドレスの確認や変更 [#c67fa52c] (参考) -Let's Encrypt (Certbot) に登録したメールアドレスを確認する方法と変更する方法 #Let’sEncrypt - Qiita https://qiita.com/noraworld/items/3d492a50ee43dfd3ae5a 最終更新日 2021年05月01日 投稿日 2018年10月08日 Let's Encrypt (Certbot) に登録したメールアドレスを確認するには、以下の方法があります。 ** 1. 設定ファイルから確認 [#de036355] Let's Encrypt の設定ファイルは通常、''/etc/letsencrypt'' ディレクトリ内にあります。 メールアドレスは ''regr.json'' に保存されているため、以下のコマンドで確認できます。 sudo cat /etc/letsencrypt/accounts/acme-v02.api.letsencrypt.org/directory/*/regr.json | grep "email" このコマンドは、設定ファイルから登録されたメールアドレスを抽出します。 ** 2. Certbot コマンドで確認 [#vf08d7f5] Certbot 自体には、登録したメールアドレスを直接表示するオプションはありませんが、設定を変更する際に確認できます。 sudo certbot register --update-registration このコマンドを実行すると、現在の登録メールアドレスが表示され、変更するかどうかの選択ができます。 ** 3. 証明書のログを確認 [#b496e923] Let’s Encrypt のログファイルにメールアドレスが記録されている場合があります。下のコマンドでログを検索できます。 sudo grep -i "email" /var/log/letsencrypt/letsencrypt.log この方法で、過去の登録時のメールアドレスを確認できる場合があります。 --- もしメールアドレスを変更したい場合は、以下のコマンドで変更できます。 sudo certbot register --update-registration --email 新しいメールアドレス 以上の方法で、Certbot に登録したメールアドレスを確認できます。 //---------------------------------------- // *Amazon [#amazon] #html{{ }} //---------------------------------------- * 関連 [#p81bff10] //---------------------------------------- -[[SSL]] -[[TLS]]