这是我的代码片段,用于在我的android应用程序上构造SSL套接字。我有一个go服务器,它正试图连接到它。我已经签署了证书,而不是自己签署的,但我仍然收到错误,
trust anchor for certification path not found. android
SSLSocketFactory f = (SSLSocketFactory) SSLSocketFactory.getDefault();
try {
SSLSocket socket = (SSLSocket) f.createSocket(ip, port);
socket.startHandshake();所以,我不知道是因为我的服务器不正确,还是因为android应用程序。我在android的主要网站上看到了这个错误,但它对我并没有真正的帮助。
这是go代码,也许能给你带来一些启发。
cert, err := tls.LoadX509KeyPair("mycert_com.crt", "key.pem")
checkError(err)
rootCert, err := ioutil.ReadFile("AddTrustExternalCARoot.crt")
checkError(err)
trustCert, err := ioutil.ReadFile("COMODORSAAddTrustCA.crt")
checkError(err)
validationCert, err := ioutil.ReadFile("COMODORSADomainValidationSecureServerCA.crt")
checkError(err)
certs := x509.NewCertPool()
certs.AppendCertsFromPEM(rootCert)
clientCerts := x509.NewCertPool()
clientCerts.AppendCertsFromPEM(trustCert)
clientCerts.AppendCertsFromPEM(validationCert)
sslConfig := tls.Config{RootCAs: certs, ClientCAs: clientCerts, Certificates: []tls.Certificate{cert}}
listener, err := tls.Listen("tcp", service, &sslConfig)我已经被困在这几个星期了。
谢谢
发布于 2014-08-30 15:47:53
您的问题在于糟糕的服务器,当您尝试使用openssl s_client时,您会看到这一点。有关如何修复服务器的类似问题,请参阅golang SSL certification。正如我在那里所说的:根据文档,您必须将中间证书放入Certificates,而不是放入RootCAs或ClientCAs。
https://stackoverflow.com/questions/25579907
复制相似问题