现在我有两个jks文件: kafka.client.truststore.jks
以及 client.keystore.jks
但是,python连接libs都使用pem文件身份验证方式。因此,我尝试通过以下帖子将这两个文件转换为pem:使用ssl从python连接到apache kafka,并发现以下异常:
Traceback (most recent call last):
File "/Users/luke/Code/python/mykafka/mykafka.py", line 10, in <module>
ssl_keyfile='/Users/luke/Code/java/kafka-keys/key.pem')
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/kafka/producer/kafka.py", line 328, in __init__
**self.config)
... ...
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 633, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)
我从其他人那里收到了这两个jks文件,所以我不知道这些jks文件的别名是什么,所以我遵循以下qa:如何在keystore文件中检查证书名和别名?要列出所有别名,但只找到一个,请以post方式使用它。
我创建pem的命令是:
keytool -list -keystore .keystore
keytool -exportcert -alias kafka-client -keystore kafka.client.keystore.jks -rfc -file certificate.pem
keytool -v -importkeystore -srckeystore kafka.client.keystore.jks -srcalias kafka- client -destkeystore cert_and_key.p12 -deststoretype PKCS12
openssl pkcs12 -in cert_and_key.p12 -nocerts -nodes
keytool -exportcert -alias ca -keystore kafka.client.truststore.jks -rfc -file CARoot.pem
我不知道怎么了,我尝试了这两个jks文件在java中,他们工作得很好。
暂无答案!
目前还没有任何答案,快来回答吧!