2

我正在为 C++ 二进制文件设置声纳系统,我正在尝试使用 https 设置。

请参阅 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

帮我解决这个问题。

4

2 回答 2

3

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

于 2013-03-01T05:11:56.977 回答
0

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

或者

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

于 2015-02-04T07:44:40.233 回答