これは少なくとも他のいくつかの質問の重複のように見えますが、私はそれらをそれぞれ数回読んだにもかかわらず、まだ何か間違ったことをしています。
以下は、/etc/nginx/sites-available
にあるmymy.com nginx設定ファイルの内容です。
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name myexample.com www.myexample.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
ssl_certificate /etc/letsencrypt/live/myexample.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myexample.com/privkey.pem;
#Configures the publicly served root directory
#Configures the index file to be served
root /var/www/myexample.com;
index index.html index.htm;
}
https://myexample.com にアクセスすると、コンテンツが提供され、接続は安全です。したがって、この構成は良いようです。
ここで、sslポートを9443に変更してnginx構成を再ロードすると、構成はエラーなしで再ロードされますが、 https://myexample.com にアクセスすると、ブラウザにエラーが表示されます(このサイトは到達した/ myexample.comが接続を拒否したERR_CONNECTION_REFUSED)
私は提案とドキュメント here 、 here 、および here (その他)を試しましたが、常にERR_CONNECTION_REFUSEDエラーが発生します。
非標準のポートを使用して、そのポートを明示的にURLに入力できることに注意してください(例: https://myexample.com:944 )。しかし、私はそれをしたくありません。私が欲しいのは、ユーザーがmyexample.comを任意のブラウザに入力して、nginxに安全な接続に自動的にリダイレクトさせることです。
繰り返しますが、標準の443 SSLポートを使用しても問題は発生しません。
編集:私はnbianx/1.6.2をdebian/jessieで使用しています
ブラウザでの「 https://myexample.com 」の入力をサポートするために、andポート9443でリッスンしているnginx
構成によって処理されるようにします。 ポート443でリッスンする追加のnginx
configが必要です。これは、ブラウザが接続するIPポートであるためです。
したがって:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name myexample.com www.myexample.com;
ssl_certificate /etc/letsencrypt/live/myexample.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myexample.com/privkey.pem;
# Redirect the browser to our port 9443 config
return 301 $scheme://myexample.com:9443$request_uri;
}
server {
listen 9443 ssl;
listen [::]:9443 ssl;
server_name myexample.com www.myexample.com;
ssl_certificate /etc/letsencrypt/live/myexample.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myexample.com/privkey.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
#Configures the publicly served root directory
#Configures the index file to be served
root /var/www/myexample.com;
index index.html index.htm;
}
証明書は通常 DNSホスト名に関連付けられていますが、必ずしもポートではないため、両方のセクションに同じ証明書/キーが必要であることに注意してください。
お役に立てれば!
https://example.com と入力すると、https://スキームの標準はポート443に接続することになります。この場合、サーバーを移動してポートでリッスンするようにしました9443. 接続が拒否されました メッセージが表示されるため、ポート443で何も待機していません。
接続をポート9443にリダイレクトするポート443でリッスンするか、URLの一部としてポートを使用するように調整する必要があります。