最近的 SSL 升级还引入了破坏 REST API 的 SNI
Recent SSL upgrade also introduced SNI which breaks REST API
我们使用 ServiceNow 通过 REST API 与 PushBullet 通信。最近我们开始收到以下错误
javax.net.ssl.SSLHandshakeException: 握手期间远程主机关闭连接
还有一个 500 HTTP 错误。
经过大量研究,SNI 似乎已添加为 SSL 证书升级的一部分 https://en.wikipedia.org/wiki/Server_Name_Indication
ServiceNow 声明他们不支持任何版本的 SNI。
您看到的测试来自 SoapUI 和 Postman。
我们对此进行测试的方法是使用以下命令:
openssl s_client -connect api.pushbullet.com:443
(this fails)
Adding the -servername parameter is used to pick the correct domain from the certificate that now contains multiple domains:
openssl s_client -connect api.pushbullet.com:443 -servername api.pushbullet.com
CONNECTED(00000003)
depth=1 /C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA - G2
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/CN=*.pushbullet.com
i:/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA - G2
1 s:/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA - G2
i:/C=US/O=GeoTrust Inc./OU=(c) 2008 GeoTrust Inc. - For authorized use only/CN=GeoTrust Primary Certification Authority - G3
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGbDCCBVSgAwIBAgIQTyKV1VxdJTcntEU7ErB0mjANBgkqhkiG9w0BAQsFADBH
<snip>
现在有什么方法可以在没有 SNI 的情况下访问 PushBullet APIs 吗?
加文
自 Jakarta 版本起添加了 SNI 支持:
默认情况下,雅加达禁用 SNI 支持。如果它已在您的 ServiceNow 实例上启用,您可以将 glide.outbound.tls_sni.enabled 属性 设置为 true。将其更改为 false,您的 API 调用应停止使用 SNI。
我们使用 ServiceNow 通过 REST API 与 PushBullet 通信。最近我们开始收到以下错误
javax.net.ssl.SSLHandshakeException: 握手期间远程主机关闭连接
还有一个 500 HTTP 错误。
经过大量研究,SNI 似乎已添加为 SSL 证书升级的一部分 https://en.wikipedia.org/wiki/Server_Name_Indication
ServiceNow 声明他们不支持任何版本的 SNI。
您看到的测试来自 SoapUI 和 Postman。
我们对此进行测试的方法是使用以下命令:
openssl s_client -connect api.pushbullet.com:443
(this fails)
Adding the -servername parameter is used to pick the correct domain from the certificate that now contains multiple domains:
openssl s_client -connect api.pushbullet.com:443 -servername api.pushbullet.com
CONNECTED(00000003)
depth=1 /C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA - G2
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/CN=*.pushbullet.com
i:/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA - G2
1 s:/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA - G2
i:/C=US/O=GeoTrust Inc./OU=(c) 2008 GeoTrust Inc. - For authorized use only/CN=GeoTrust Primary Certification Authority - G3
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGbDCCBVSgAwIBAgIQTyKV1VxdJTcntEU7ErB0mjANBgkqhkiG9w0BAQsFADBH
<snip>
现在有什么方法可以在没有 SNI 的情况下访问 PushBullet APIs 吗?
加文
自 Jakarta 版本起添加了 SNI 支持:
默认情况下,雅加达禁用 SNI 支持。如果它已在您的 ServiceNow 实例上启用,您可以将 glide.outbound.tls_sni.enabled 属性 设置为 true。将其更改为 false,您的 API 调用应停止使用 SNI。