エクスプレスサイトにアクセスしようとすると、Chromeで一部(すべてではない)のユーザーのみがERR_SSL_PROTOCOL_ERRORを受信します。このエラーは表示されないため、デバッグするのが面倒です。
私はプロバイダー(1&1)からダウンロードしたPFXファイルを使用してhttpsサーバーを作成しています:
var options = {
pfx: fs.readFileSync('./mysite_private_key.pfx'),
passphrase: 'MYPASSPHRASE',
};
https.createServer(options, app).listen(443);
https://whatsmychaincert.com は、チェーンは正しいがハンドシェイクについて不平を言うことを私に伝えます:
[mysite]は正しいチェーンを持っています。
[mysite]:TLSハンドシェイクエラー:エラー:14077438:SSLルーチン:SSL23_GET_SERVER_HELLO:tlsv1アラートの内部エラーSSL Labsが問題の原因を教えてくれる可能性があります
私はこれをググって成功しませんでした、誰が問題が起こり得るのか知っていますか?タイ。
現在、サーバー(1&1など)が安全に設定されている場合、サポートされているのはtls v1.2とtls v1.3だけです。
これをデバッグする方法:
scanSSL Labs Test を使用してサイトをサポートするか、サポートされている暗号を確認するか、nginx/Apache設定で確認してください
tail -f
サーバーログ、特にcatchall/other_vhostsログファイル。サーバーが名前を決定できない場合、sslプロトコルエラーがサイトログと一般的なcatchallログに含まれる可能性があるため
updateユーザーに試してみてくださいchrome少なくともtls 1.2をサポートする
chromeには、暗号の動作を変更するためのコマンドラインスイッチがいくつかあります。
--ssl-version-max
SSL/TLSの最大バージョンを指定します( "tls1.2"または "tls1.3")。 ↪--ssl-version-min
SSL/TLSの最小バージョンを指定します( "tls1"、 "tls1.1"、 "tls1.2"、または "tls1.3")。 ↪ssl_ciphers
ディレクティブ)socat OR(最後の手段) socat2 のように、クライアントがサポートしているバージョンを確認します。失敗したハンドシェイクの考えられる原因は、中間証明書の欠如、_ tls.createSecureContext
のca
オプションです。プロバイダーのWebサイトで公開する必要があります。
お役に立てれば。