Sonar - 无法请求服务器版本

问题描述:

我正在为C++ Binaries设置声纳系统,我正在尝试使用https安装程序。Sonar - 无法请求服务器版本

见Connector元素在server.xml中

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" 
    maxThreads="150" scheme="https" secure="false" 
    clientAuth="false" sslProtocol="TLS" 
    keystoreFile="D:/sonar_framework/apache-tomcat-7.0.35/conf/.keystore" keystorePass="changeit" 
    ciphers="SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"/> 

而且sonar.host.url = https://b1.co:8443/sonar/在Sonar-runner.properties

我给本地主机也为下一次尝试,

但它显示错误

Exception in thread "main" java.lang.IllegalStateException: Fail to request server version 
     at org.sonar.runner.Bootstrapper.getServerVersion(Bootstrapper.java:73) 
     at org.sonar.runner.Runner.checkSonarVersion(Runner.java:220) 
     at org.sonar.runner.Runner.execute(Runner.java:150) 
     at org.sonar.runner.Main.execute(Main.java:84) 
     at org.sonar.runner.Main.main(Main.java:56) 
Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching <machine Name> found 
     at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) 
     at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1902) 
     at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276) 
     at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270) 
     at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1341) 
     at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:153) 
     at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868) 
     at sun.security.ssl.Handshaker.process_record(Handshaker.java:804) 
     at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1032) 
     at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328) 
     at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355) 
     at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) 
     at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:515) 
     at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) 
     at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1299) 
     at java.net.URLConnection.getContent(URLConnection.java:748) 
     at sun.net.www.protocol.https.HttpsURLConnectionImpl.getContent(HttpsURLConnectionImpl.java:434) 
     at org.sonar.runner.Bootstrapper.remoteContent(Bootstrapper.java:125) 
     at org.sonar.runner.Bootstrapper.getServerVersion(Bootstrapper.java:71) 
     ... 4 more 
Caused by: java.security.cert.CertificateException: No name matching blrkmis1977pc.in002.siemens.net found 
     at sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:208) 
     at sun.security.util.HostnameChecker.match(HostnameChecker.java:93) 
     at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:347) 
     at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:203) 
     at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126) 
     at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1323) 
     ... 18 more 

帮我解决了这个问题秒。

+0

您是否使用自签名证书?另外,stracktrace是用于localhost的,当你不使用本地主机时,你会得到一个,但完整的域名? – 2013-02-28 21:48:30

+0

我正在使用完整的域名和自签名认证。我仍然面临这个问题。 – 2013-03-01 03:40:26

您需要告诉Java接受自签名证书。请参阅this SO帖子(接受答案中的选项1)。

我想你应该检查你的声纳服务器,在你的日志里,你的服务器是使用8443端口的,所以你应该使用下面的命令来检查这个端口是否还在监听? netstat -anl | grep 8443

您只需重新启动声纳服务器。