我正试图与我公司的一些软件(我没有编写)进行交流。我们可以通过配置设置服务器证书、服务器密钥和服务器CA证书。在
我在主计算机上生成根证书:
openssl genrsa -out rootCA.key 2048
我使用以下内容自行签署根证书:
^{pr2}$我生成客户机密钥的方式与生成根密钥的方式相同,生成一个CSR:
openssl req -new -key device.key -out device.csr
然后,我用根证书为客户端密钥签名:
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 500 -sha256
我正在从Python OpenSSL通信到这个应用程序(在Java中运行)。我将OpenSSL中的密钥和证书文件设置为设备密钥,然后将服务器ca证书和服务器证书设置为根证书,将服务器密钥设置为根密钥。不管怎样,我总是在Python中得到这个错误:
OpenSSL.SSL.Error: [('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')]
Java中的这个错误:
On handshake complete OpenSSL error: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
我不知道我是不是做错了什么,或者是我得不到的软件——在我去窃听CTO之前,我想知道我是否不理解SSL/TLS。我是不是错过了一步?服务器是否应该不使用根证书作为自己的证书?在
编辑
要详细解释设置:
我们通常部署在集群环境中。在
客户机应用程序以主/备用配置在两台机器上运行,服务器是集群中的所有机器(包括主/备用网络集成单元的两台)。作为安装过程的一部分,主机将根SSH密钥分发给集群中的所有机器,因此,通过Ansible,我可以完全控制所有机器。这两个niu有一个应用程序,它使用soapovertls来控制集群中所有机器上的软件。我们过去一直使用UDP,但我们正在努力提高安全性。在
目前没有回答
相关问题 更多 >
编程相关推荐