openssl req -new -nodes -keyout server.key -out server.csr
(OPENSSL中DN使用中文的问题)如果要在DN中输入中文,在这里特别要注意不要在打入上面命令后,在交互状态下直接采用中文输入,Openssl中如果要使用中文,必须通过UTF-8编码,如果在命令行中输入,都会产生乱码,如果要输入UTF-8,有一个办法,就是修改openssl.conf文件,用UTF-8编码的资料修改DN中的命令行交互时的缺省信息。这样当OPENSSL提示输入字段时,直接回车,就可以使用这些事先配好的UTF-8资料了。
将csr文件交给CA签名后,获得cer文件,为了提供给IIS,TOMCAT,RESIN等服务器使用,需要将Key+Cer文件转换PKCS12格式的文件,如果CA签发的是单根证书(Single Root Certificate:由CA内置浏览器的根证书直接签发服务器证书的)请用如下命令:
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.cer
如果CA签发出的是级联证书(Chained SSL Certificate: 在CA和服务器正式之间,还有1张或多张的中间证书,为了保证客户验证的完整性,必须在PFX,安装全部的中间证书),请用如下命令:
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt -certfile chain.cer
chain.cer 包含了所有中间证书的内容,可以不包含根证书和服务器证书,如果有多个中间证书,可直接用记事本将各个证书打开(都必须是Base64的),然后粘帖到一个文件里就可以了。
举例,GeoTrust EV证书在IE5下的证书链格式如下:
--Equifax Sevure Certificate Authority
--GeoTrust Primary Certification Authority
--GeoTrust Extended Validation SSL CA
--www.domain.com
则chain.cer应该包含了GeoTrust Primary Certification Authority和GeoTrust Extended Validation SSL CA两个中间证书。
openssl pkcs12 -in myssl.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt
openssl pkcs12 -info -in server.pfx
|