web-dev-qa-db-ja.com

UbuntuのHTTPSポートに接続できません

新しいSSL証明書をインストールし、それを使用するようにNginxを設定しました。ただし、サイトでHTTPSをヒットしようとすると、リクエストがタイムアウトします。ポート80でドメインにTelnetで接続すると、接続されますが、ポート443でタイムアウトになります。Ubuntuに接続を妨げるデフォルトがあるかどうかはわかりません。 cURLもHTTPSアドレスにタイムアウトしますが、通常のHTTPに応答します。

UFWステータスは次のことを示しています。

443  ALLOW    Anywhere

netstat -aは次のことを示しています:

tcp        0      0 *:https                 *:*                     LISTEN  

nmapローカルホストは次のことを示しています。

443/tcp  open  https

Nginx構成の関連ブロックは次のとおりです。

server {
    listen 443;
    listen [::]:80 ipv6only=on;
    listen 80;
    root /path/to/app;
    server_name mydomain.com

    ssl on;
    ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
      proxy_pass http://mydomain.com;
      proxy_set_header Host $Host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

編集:nginx構成オプションの全範囲を試しましたが、それがセットアップであるかどうかは本当に疑わしいです。 ssl-bundle.crtが失敗した場合、タイムアウトが発生しますか?もしそうなら、私はサポートのためにPositiveSSLに戻ることができます。

2
Simpleton

これを試して:

server {
    listen 443 ssl;
    listen [::]:80 ipv6only=on;
    listen 80;
    root /path/to/app;
    server_name mydomain.com

    ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
      proxy_pass http://mydomain.com;
      proxy_set_header Host $Host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

ssl on;を削除し、ssllisten 443;に追加します)

1
xofer

問題はNginxでも、誰かが助けてくれるものでもなかったので、将来誰かがこの問題を抱えている場合に備えて、ここに残しておきます。

問題は、私が無料プランを利用していたときに、Cloudflareでポート443が閉じられたことでした。無料プランではSSLをサポートしていません。

0
Simpleton

Steffenのコメントに同意したいと思います(同じサーバーブロックで443をリッスンして80​​をリッスンします)。

異なるサーバーブロックでHTTPとHTTPSを処理してください。 2番目のlistenディレクティブが最初のlistenディレクティブを上書きしたと思います。さらに、ポート443のlisten-directivesの「ssl」キーワードを見逃しました。

server {
    listen 80;
    listen [::]:80 ipv6only=on;
    root /path/to/app;
    server_name mydomain.com

    location / {
      proxy_pass http://mydomain.com;
      proxy_set_header Host $Host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen 443 ssl;
    listen [::]:443 ssl ipv6only=on;
    root /path/to/app;
    server_name mydomain.com

    ssl on;
    ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
      proxy_pass http://mydomain.com;
      proxy_set_header Host $Host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

ユーザーxoferが報告したように、1つのサーバーブロックにHTTPとHTTPSを含めることができます。したがって、このオールインワンソリューションの例も同様です。

server {
    listen 80;
    listen [::]:80 ipv6only=on;
    listen 443 ssl;
    listen [::]:443 ssl ipv6only=on;
    root /path/to/app;
    server_name mydomain.com

    ssl on;
    ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
      proxy_pass http://mydomain.com;
      proxy_set_header Host $Host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
0
Jens Bradler