HTTPSをNginx-Let's Encryptに適用


Let's!Incript!Let's!ああ!
let's encryptは、ユーザーにtls証明書を無料で発行する非営利機関です.完全自動化可能なdv認証書を無料で配布します.

1.certbotのインストール


let's encryptを使用してssl証明書を取得する必要があります.まずcertbotソフトウェアをサーバにインストールします.
Certbotは、最新バージョンのUbuntuソフトウェアリポジトリを使用します.とりあえず更新しておきましょう.
まずapt更新&upgradeを行い、certbotにリポジトリを追加します.
$ sudo apt update
$ sudo apt upgrade
$ sudo apt-add-repository -r ppa:certbot/certbot
certbotのnginxパッケージをインストールします.
$ sudo apt install python3-certbot-nginx

2.Nginx構成の設定


証明書をプロファイルに適用するドメイン名を作成します.
既存のサーバ名の部分をアプリケーション証明書のドメイン名に置き換えるだけです.

変更後に異常がないかテストします.
sudo nginx -t

異常がない場合は、nginxを再ロードしてプロファイルを適用します.

3.SSL証明書の取得


certbotは、複数のプラグインを介してssl証明書を取得するための複数の方法を提供します.nginxプラグインは、必要に応じてnginxを再構成し、再ロードします.
-dオプションドメインを指定し、Nginxプラグインで証明書を取得します.
sudo certbot --nginx -d suyeon.shop -d www.suyeon.shop
入力emailを表示
使用するメールを書いてEnterをクリックすればいいです.
suyeon.shopドメインにエラーが発生しました.

dnsレコードの設定時にwwwホストのみが設定されているためです.エラーを解決するために.
dnsレコードが追加されました.
@は、wwwがないときに入力する設定です.
dnsレコードを追加したら、ssl証明書のインストールを再開します.

http接続の設定方法を尋ねる質問が表示されます.
1:http接続をhttp xにリダイレクト
2:http接続をhttpにリダイレクト
2を選びました.それぞれ自分が望む設定を選べばいい

証明書のインストールとダウンロードが完了しました.
https://www.ssllabs.com/ssltest/に移動し、ドメイン内のサーバをテストしました.

うん...?間違いは貧乏だ.
これはaws ec 2インスタンスのセキュリティグループがsslを使用する443ポート番号を開いていないため、エラーです.
開けて

インバウンドルールにhttpsが追加されました.
前のテストをすると、画面でレベルを確認できます.

4.Cerbot自動更新の確認


let's encryptの証明書は90日以内に有効であるため、90日ごとに更新されます.
but! インストール中/etc/cron.dには自動更新のコマンドが含まれています.更新プロセスが正常に動作しているかどうかをテストしたい場合は、
以下のコマンド言語でテストできます.
sudo certbot renew --dry-run

エラーが単独で表示されない場合は、すべての設定が完了します.
https://velog.io/@banjjoknim/Lets-encrypt%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-Nginx%EC%97%90-HTTPS-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0
https://velog.io/@oyeon/HTTPS-%EC%A0%81%EC%9A%A9-Lets-Encrypt