6

我有一个每 30 秒运行一次的循环,连接到 SSL 服务器 (reactor.connectSSL()),发送消息 (self.transport.write(msg)),然后断开连接 (self.transport.loseConnection())。

问题是每次循环尝试连接时都会询问“输入 PEM 密码”。是否可以只输入一次?

4

3 回答 3

11

正如 Mikael 所建议的,您可以从密钥中删除密码短语。请注意,这会带来严重的安全风险。

要从密钥中删除密码短语,请执行以下步骤。假设您有一个名为foo.pem以下内​​容的文件:

-----BEGIN ENCRYPTED PRIVATE KEY-----
...
-----END ENCRYPTED PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

执行以下命令:

openssl rsa -in foo.pem -out foo_unencrypted.pem

系统将提示您输入密码,并作为回报收到一个foo_unencrypted.pem包含以下内容的文件:

-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

该文件缺少BEGIN CERTIFICATE ---- END CERTIFICATE上面的部分,因此将其复制粘贴foo.pem到末尾foo_unencrypted.pem

-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

如果您使用该文件foo_unencrypted.pem,您现在将不再被提示“输入 PEM 密码”。

于 2014-01-03T16:17:07.127 回答
1

我最终找到了这篇文章:Auto enter pass phrase in case of Python ssl Client/Server,他们建议您从密钥中删除密码。

于 2012-04-09T10:38:08.403 回答
0

我试图运行该命令,但它没有这样做。而且我的应用程序每次启动时都会询问 PEM para 短语。

$ openssl rsa -in chatbot.key -out chatbot.unprotectedkey
Enter pass phrase for chatbot.key:
unable to load Private Key
33432:error:0607607D:digital envelope routines:PKCS5_v2_PBE_keyivgen:unsupported prf:p5_crpt2.c:230:
33432:error:06074078:digital envelope routines:EVP_PBE_CipherInit:keygen failure:evp_pbe.c:101:
33432:error:23077073:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 algor cipherinit error:p12_decr.c:83:
33432:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:123:
33432:error:0907B00D:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:pem_pkey.c:125:
于 2020-03-14T20:33:34.157 回答