Windows上安装OpenSSL和生成证书

1,先下载OpenSSL

http://www.slproweb.com/products/Win32OpenSSL.html

2,下载安装Perl

http://www.perl.org/get.html

下载 ActiveState Perl

一,建立CA
1,建立一个工作目录SSL
mkdir SSL
cd SSL
2,用CA脚本自动建立一个CA
CA.pl -newca
这样就在demoCA目录下建立了一个CA
demoCA/private/cakey.pem是CA根证书的私钥
demoCA/cacert.pem是CA的根证书文件,需要导入到服务器和浏览器里面
二,签名服务器证书
1,生成服务器证书私钥
openssl genrsa -des3 -out server.key 1024
1,生成服务器证书请求
openssl req -new -key server.key -out server.csr

其中Common Name是必填项,填写域名或IP地址
2,用CA签名服务器证书
openssl ca -in server.csr -out server.cer
3,把证书转换成X509格式,用于IIS(可选)
openssl x509 -in server.cer -out myserver.cer
myserver.cer就是服务器证书,可导入到IIS
4,合并私钥和证书用于lighttpd
copy /b /y server.key+server.cer myserver.pem

copy /b /y server.key+myserver.cer myserver.pem
三,签名客户端证书
1,生成客户端私钥
openssl genrsa -des3 -out client.key 1024
2,生成客户端证书请求
openssl req -new -key client.key -out client.csr
3,用CA签名客户端证书
openssl ca -in client.csr -out client.cer
4,把证书格式转换成pkcs12格式
openssl pkcs12 -export -clcerts -in client.cer -inkey client.key -out client.pfx
四,安装证书
1,lighttpd设置安装
安装myserver.pem,cacert.pem
lighttpd.conf
ssl.engine               = "enable"
ssl.pemfile              = "/etc/ssl/myserver.pem"
ssl.ca-file             = "/etc/ssl/cacert.pem"
lighttpd启动的时候会要求输入密码,要求输入密语的原因是server.cer文件中的RSA私钥是出于安全考虑
而被加密存储的,而密语就是用来解密私钥的。解除密语的保护就剥去了一层安全保护,所以做这个操作
的时候请三思而后行!

首先备份原始RSA私钥文件,然后再去除RSA私钥文件上的密语保护:
copy server.key server.key.old
openssl rsa -in server.key.old -out server.key
copy /b /y server.key+server.cer myserver.pem

2,客户端安装
demoCA/cacert.pem改名为cacert.cer,安装到信任的机构
client.pfx直接在windows安装或安装到您的证书位置

 
转自: http://haohetao.iteye.com/blog/920532

你可能感兴趣的:(加密,解密,证书,OpenSSL)