次の手順に従って、自己署名証明書を使用してLEMPにSSLを構成しました: https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl -certificate-for-nginx-in-ubuntu-16-04
唯一の例外はdefault_server
で、これはマルチホストサーバーになるため使用できません(最終的に)
HTTPS経由でサイトを閲覧しようとするまで、プロセス全体で何も失敗しません。Secure Connection Failed
で失敗し、バイパスする他のオプションはありません。 (自己署名証明書に基づくエラーが予想されますが、Firefoxには通常、「Advanced」ボタンがあります。これはバイパスできます。)
netstat -ntlp
を介してサーバーに対して適切なポートが開いていることも確認しました
エラーメッセージを表示する場合は、ここでサイトを参照できます。 https://www.azem.us/ (非実稼働であるため、実際には心配していません... )
curl -I https://www.azem.us/
を実行すると、次のエラーが返されます:curl: (35) gnutls_handshake() failed: The TLS connection was non-properly terminated.
実際に私が得たのは、構成されたエラーログに何も含まれていないことです。
これを修正し、SSLでこれらのサイトにサービスを提供するにはどうすればよいですか?
注:これは、実際のCAからの適切なSSL証明書でも発生します
進行中の診断openssl s_client -connect www.azem.us:443
を実行すると、興味深い情報が返されます。
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 305 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1474399712
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
私はおそらく考えがずれていますが、これは証明書がサーバー上に存在しないことを意味しませんか?それらが実際に存在し、nginx.conf
で適切に構成されていることを確認できます。
そして:openssl s_client -verify www.azem.us:443
戻り値:
verify depth is 0
connect: Connection refused
connect:errno=111
別のマシンからのnmap
Host is up (0.0043s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
telnet
は接続できますが、ポート443を試行するとすぐに接続を閉じます
構成するGIT REPO: https://github.com/kpirnie/LEMP-Command
最後にどこかに行きます...メインのnginx.confのerror_log
レベルを変更し、現在ログにエラーが表示されています:2016/09/21 08:22:58 [error] 29557#29557: *4 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: this.is.my.ip, server: 0.0.0.0:443
多くの議論とここでの審議の後、私は問題が何であるかを見つけました。
メインのnginx.conf
では、listen
ディレクティブをポート80
と443
の両方に設定していました
それらを削除し、VHost構成に追加すると、機能し始めました。