代码之家  ›  专栏  ›  技术社区  ›  Subodh Joshi

证书中的主机名与OAuth请求中的主机名不匹配

  •  0
  • Subodh Joshi  · 技术社区  · 8 年前

    我已经通过openssl创建了证书

    Openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/O=nginxsvc"
    

    和导入 tls.crt 通过java中的keytool

    keytool -import -file C:\Code_Base\Certificates\NGINX_150\tls.crt -storepass changeit -keystore "C:\Program Files\Java\jdk1.8.0_152\jre\lib\security\cacerts"
    

    但我正在

    16: 30:21046错误[org.keydrope.adapters.OAuthRequestAuthenticator] (http-/0.0.0.0:8080-1)无法将代码转换为令牌: javax。网ssl。SSLException:证书中的主机名不匹配: <135.209.100.150>!=在 组织。阿帕奇。http。连接ssl。抽象验证器。验证(AbstractVerifier.java:238) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。连接ssl。BrowserCompatHostnameVerifier。验证(BrowserCompatHostnameVerifier.java:54) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。连接ssl。抽象验证器。验证(AbstractVerifier.java:159) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。连接ssl。抽象验证器。验证(AbstractVerifier.java:140) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。连接ssl。SSLSocketFactory。验证主机名(SSLSocketFactory.java:561) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。连接ssl。SSLSocketFactory。connectSocket(SSLSocketFactory.java:536) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。钥匙斗篷。适配器。SniSSLSocketFactory。connectSocket(SniSSLSocketFactory.java:109) [keydrope-adapter-core-2.4.0.Final.jar:2.4.0.Final]位于 组织。阿帕奇。http。连接ssl。SSLSocketFactory。connectSocket(SSLSocketFactory.java:403) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。实施。conn.DefaultClientConnectionOperator。openConnection(DefaultClientConnectionOperator.java:177) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。实施。conn.AbstractPoolEntry。打开(AbstractPoolEntry.java:144) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。实施。conn.AbstractPooledConnAdapter。打开(AbstractPooledConnAdapter.java:131) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。实施。客户DefaultRequestDirector。tryConnect(DefaultRequestDirector.java:611) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。实施。客户DefaultRequestDirector。执行(DefaultRequestDirector.java:446) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。实施。客户AbstractHttpClient。doExecute(AbstractHttpClient.java:863) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。实施。客户CloseableHttpClient。执行(CloseableHttpClient.java:82) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。实施。客户CloseableHttpClient。执行(CloseableHttpClient.java:106) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。阿帕奇。http。实施。客户CloseableHttpClient。执行(CloseableHttpClient.java:57) [httpclient-4.3.6.redhat-1.jar:4.3.6.redhat-1] 组织。钥匙斗篷。适配器。服务器请求。invokeAccessCodeToToToken(ServerRequest.java:107) [keydrope-adapter-core-2.4.0.Final.jar:2.4.0.Final]位于 组织。钥匙斗篷。适配器。OAuthRequestAuthenticator。resolveCode(OAuthRequestAuthenticator.java:327) [keydrope-adapter-core-2.4.0.Final.jar:2.4.0.Final]位于 组织。钥匙斗篷。适配器。OAuthRequestAuthenticator。身份验证(OAuthRequestAuthenticator.java:273) [keydrope-adapter-core-2.4.0.Final.jar:2.4.0.Final]位于 组织。钥匙斗篷。适配器。RequestAuthenticator。身份验证(RequestAuthenticator.java:130) [keydrope-adapter-core-2.4.0.Final.jar:2.4.0.Final]位于 组织。钥匙斗篷。适配器。公猫AbstractKeyDoppeAuthenticatorValve。authenticateInternal(AbstractKeyDoppeAuthenticatorValve.java:208) [keydrope-tomcat-core-adapter-2.4.0.Final.jar:2.4.0.Final]位于 组织。钥匙斗篷。适配器。jbossweb。KeyDoppeAuthenticatorValve。身份验证(keydeportauthenticatorvalve.java:39) [keyclope-as7-adapter-2.4.0.Final.jar:2.4.0.Final]位于 组织。阿帕奇。卡特琳娜。验证器。AuthenticatorBase。调用(AuthenticatorBase.java:478) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 组织。钥匙斗篷。适配器。公猫AbstractKeyDoppeAuthenticatorValve。invoke(AbstractKeyDoppeAuthenticatorValve.java:187) [keydrope-tomcat-core-adapter-2.4.0.Final.jar:2.4.0.Final]位于 组织。jboss。像网状物安全SecurityContextAssociationValve。调用(SecurityContextAssociationValve.java:169) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21] 组织。阿帕奇。卡特琳娜。果心标准主阀。调用(StandardHostValve.java:150) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 组织。阿帕奇。卡特琳娜。阀门。错误报告阀。调用(ErrorReportValve.java:97) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 组织。阿帕奇。卡特琳娜。果心标准发动机阀。调用(StandardEngineValve.java:102) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 组织。阿帕奇。卡特琳娜。连接器。郊狼适应者。服务(CoyoteAdapter.java:344) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 组织。阿帕奇。郊狼。http11.http11处理器。进程(Http11Processor.java:854) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 组织。阿帕奇。郊狼。http11协议$Http11ConnectionHandler。进程(Http11Protocol.java:653) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 组织。阿帕奇。公猫util。网JIoEndpoint$工人。运行(JIoEndpoint.java:926) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] Java语言lang.Thread。运行(Thread.java:748)[rt.jar:1.8.0\u 152]

    1 回复  |  直到 8 年前
        1
  •  1
  •   Hendrikvh    8 年前

    common name (或 SAN s) 您的SSL/TLS证书的名称与另一个服务在尝试访问您的服务时连接的主机+域名不匹配。

    您的CommonName(CN=nginxsvc)应与服务的主机名和域名/IP匹配。所以如果你的服务在 nginxservice.yourdomain.com ,证书commonname也应为 nginxservice。您的域。通用域名格式 . 如果您只是出于开发目的使用IP,那么您也可以使用该IP,直到您的服务具有DNS条目为止。