nginx 経由で提供されるサブドメインに certbot を使用する適切な方法は何ですか?

nginx 経由で提供されるサブドメインに certbot を使用する適切な方法は何ですか?

何かが足りないのではないかと思います。なぜなら、エラーなしで実行した後、次の手順を実行したにもかかわらず、ブラウザでサブドメインにアクセスしてコンテンツを読み込もうとするたびに、「安全ではありません」と表示されるからですsudo certbot --nginx

これが vhost の設定ファイルです:

server {                                                                                                                                         
        listen 80;                                                                                                                               
        listen [::]:80;                                                                                                                          

        root /var/www/lms/;                                                                                                                      

        server_name lms.blainelafreniere.io;                                                                                                     

        location / {                                                                                                                             
                try_files $uri /index.html;                                                                                                      
        }                                                                                                                                        
}                                                                                                                                                

server {

        server_name lms-api.blainelafreniere.io;

        location / {
                proxy_pass http://127.0.0.1:3001;
        }

        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/lms-api.blainelafreniere.io/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/lms-api.blainelafreniere.io/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}


server {
    if ($host = lms-api.blainelafreniere.io) {

        return 301 https://$host$request_uri;
    } # managed by Certbot
    listen 80;
    listen [::]:80;

    server_name lms-api.blainelafreniere.io;
    return 404; # managed by Certbot
}

これが重要かどうかはわかりませんが、メインのルート ドメインである blainelafreniere.io は、まったく別の VPS を指しています。私の blainelafreniere.io ドメインは独自の SSL 証明書で保護されており、現在、サブドメイン (この場合は lms-api.blainelafreniere.io) に対してのみ新しい SSL 証明書を生成しようとしています。

blainelafreniere.io => サーバー A lms.blainelafreniere.io、lms-api.blainelafreniere.io => サーバー B

メインドメインの証明書はサブドメインのセキュリティ保護にも使用する必要がありますか? または、サブドメインごとに新しい証明書を生成できますか?

答え1

とともにHTTP-01 チャレンジ指定されたホスト名(複数のSANを含む可能性あり)の証明書のみを取得できます。証明書の透明性によるとログblainelafreniere.ioのワイルドカード証明書がないので*.blainelafreniere.io、サブドメインに同じ証明書を使用することもできません。(ワイルドカード証明書の取得は、DNS-01 チャレンジただし、この場合はそれは必要ではなく、最適でもありません。

ログには、Let's Encryptが両方のサブドメイン(lms.apiおよびlms)の証明書を正常に発行したことも示されています。それが正しいやり方だ

自動更新を行うには、http://example.com/.well-known/acme-challenge/Let´s Encrypt / Certbot 設定で指定された場所 (例: の下/etc/letsencrypt/renewal/) にアクセスしてサービスを提供し続ける必要があります。

現在、サーバーは34.200.239.16HTTPS リクエストにまったく応答していません。これは証明書の問題ではありません。Nginx がポート 443 をリッスンしていないか、ファイアウォールによってブロックされています。

$ dig lms.blainelafreniere.io +short
34.200.239.16

$ dig lms-api.blainelafreniere.io +short
34.200.239.16

nc 34.200.239.16 443 -nvvv
(UNKNOWN) [34.200.239.16] 443 (https) : Connection timed out
 sent 0, rcvd 0

関連情報