私有Web应用程序需要从大约20个已知用户接收加密电子邮件。 如何使用OpenSSL生成有效的加密证书,Outlook用户可以导入该加密证书并用于加密电子邮件,这些电子邮件可以在连接到我的应用程序的电子邮件地址收到后解密?
为此,我开始使用@ logicalscope对其他帖子的回答代码,我将在此总结如下:
$ openssl genrsa -aes128 -out email.key 2048
$ openssl req -new -key email.key -out email.csr -config email.cnf
$ openssl x509 -req -days 365 -in email.csr -CA ca.crt -CAkey ca.key -set_serial 10 -out email.crt
$ openssl pkcs12 -export -in email.crt -inkey email.key -out email.pfx
在email.cnf
前面的步骤之前创建的位置为:
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
prompt = no
[ req_distinguished_name ]
C = {Country}
ST = {Provice/State}
L = {City}
O = {Org}
OU = {Org Unit}
CN = user@domain.com
emailAddress = user@domain.com
问题是上面的代码不知道在哪里寻找ca.crt
。因此,该行openssl x509 -req -days 365 -in email.csr -CA ca.crt -CAkey ca.key -set_serial 10 -out email.crt
导致以下结果:
Signature ok
subject=/C=US/ST=CA/L=MyCity/O=MyOrganization/OU=MyUnit/CN=me@serverdomain.com/emailAddress=me@serverdomain.com
Error opening CA Certificate ca.crt
140570916620192:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('ca.crt','r')
140570916620192:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
unable to load certificate
如何生成有效ca.crt
的方式,使Outlook用户可以使用它email.pfx
来加密我的应用程序在收到后可以解密的电子邮件?我需要购买证书吗? 这仅适用于开发服务器。得到一些免费的工作会很好。例如,Thunderbird用户能够发送使用我的应用程序能够解密的GPG密钥加密的电子邮件。
我的devbox运行的是Windows 7和Outlook 2010。