On Wed, 3 Mar 2021 15:10:54 GMT, Vyom Tewari <[email protected]> wrote:
>> HttpsURLConnection, works with SunJSSE provider but does not work with other
>> JSSE provider. In case of SunJSSE , HttpsURLConnection set the host name as
>> follows
>>
>> s = (SSLSocket)serverSocket;
>> if (s instanceof SSLSocketImpl) {
>> ((SSLSocketImpl)s).setHost(host);
>> }
>>
>> But in case of other providers(BouncyCastleProvider ) host will not get set
>> and "java.security.cert.CertificateException: No subject alternative name
>> found matching IP address" exception will be thrown.
>
> Vyom Tewari has updated the pull request incrementally with one additional
> commit since the last revision:
>
> reverted the overly deleted else block
src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java line
566:
> 564: SSLParameters paramaters = s.getSSLParameters();
> 565:
> paramaters.setEndpointIdentificationAlgorithm("HTTPS");
> 566: paramaters.setServerNames(List.of(new
> SNIHostName(host)));
Thank you for taking my comment. But I may not update line 456-458. A safer
update may be in line 566, for example:
+ // The host has been set for SSLSocketImp previously.
+ if (!(s instanced SSLSocketImpl)) {
paramaters.setServerNames(List.of(new SNIHostName(host)));
+ }
-------------
PR: https://git.openjdk.java.net/jdk/pull/2583