[ https://issues.apache.org/jira/browse/HTTPCLIENT-1097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13040574#comment-13040574 ]
Sebb commented on HTTPCLIENT-1097: ---------------------------------- RFC2818 says this about wildcards: Names may contain the wildcard character * which is considered to match any single domain name component or component fragment. E.g., *.a.com matches foo.a.com but not bar.foo.a.com. f*.com matches foo.com but not bar.com. This implies that the StrictHostnameVerifier ought to allow wildcards for component fragments. The RFC does not say if *oo.com or f*o.com is allowed - are such certs ever created? It does appear to disallow multiple wildcards - "... _the_ wildcard character ...". I assume that the example f*.com is bad, and is not actually allowed! In which case, wildcards are allowed if: - there are at least 2 dots, i.e. 3 components - there is only one * and this must be at the end of the first component - if there are 3 components and the last one has two characters then check against bad 2LDs What about server*.example.com - do curl and Firefox allow this to match server.abc.example.com? The matching could probably be simplified if this is not allowed. > BrowserCompatHostnameVerifier should handle wildcards in SSL certificates > better > -------------------------------------------------------------------------------- > > Key: HTTPCLIENT-1097 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1097 > Project: HttpComponents HttpClient > Issue Type: Bug > Components: HttpClient > Affects Versions: 4.1.1 > Reporter: Hennus Bergman > Priority: Minor > > I ran into a problem with SSL wildcard certificates in the class > BrowserCompatHostnameVerifier. It handles "*.example.org" fine but > "server*.example.org" fails to work correctly. The javadoc claims that it > should behave the same way as curl and FireFox. In Firefox an SSL certificate > for "server*.example.org" works fine for the host "server.example.org", using > HttpClient it throws an exception. > Here is an example test (JUnit4): > package org.example.hb; > import javax.net.ssl.SSLException; > import org.apache.http.conn.ssl.BrowserCompatHostnameVerifier; > import org.junit.Test; > public class BrowserCompatHostnameVerifierTest { > /** > * Should not throw an exeption in the verify method. > * @throws SSLException > */ > @Test > public void testVerifyStringStringArrayStringArray() throws SSLException > { > BrowserCompatHostnameVerifier hv = new > BrowserCompatHostnameVerifier(); > String host = "www.example.org"; > String[] cns = {"www*.example.org"}; > > hv.verify(host, cns, cns); > } > } -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org