本文介绍利用OpenSSL自签发服务器https证书:CA证书(根证书)和server证书(服务器域名证书)。
XAMPP套件已经自带OpenSSL了,若单独配置,可以自行安装OpenSSL,同时避免使用2014年4月心脏出血漏洞时宣布存在漏洞的版本。(新版XAMPP已经完成了更新)。
具体教程
OpenSSL官方推荐win32可执行文件版下载:
http://www.slproweb.com/products/Win32OpenSSL.html
1、ca.key CA私钥:
openssl genrsa -des3 -out ca.key 2048
使用“openssl genrsa -des3 -out ca.key 2048”生成密钥文件时,是需要输入密钥的,运行的时候会让你输入并确认你的密钥,但是在Windows环境下,启动Apache会导致以下错误:
错误:Apache启动失败
错误提示是:Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file …..)
原因是:window下的apache不支持加密的私钥文件。可不使用des3加密。
2、制作解密后的CA私钥,但一般不需要这一步:
openssl rsa -in ca.key -out ca_decrypted.key
3、ca.crt CA根证书(公钥):
openssl req -new -x509 -days 7305 -key ca.key -out ca.crt
根证书时,commonname可以是公司名字,而不需要是域名。
4、服务器server私钥:
openssl genrsa -des3 -out server.key 2048
window下的apache不支持加密的私钥文件。可不使用des3加密。
5、制作解密后的服务器server私钥(Win+Apache需要解密后的server私钥):
openssl rsa -in server.key -out server.key2
6、从服务器server私钥生成签名请求CSR文件:
openssl req -new -key server.key -out server.csr
服务器证书,commonName时输入域名,如*.creke.net,支持*通配符,邮箱之后的内容可填可不填,如果生成个人证书,如用来加密签名电子邮件,commonName输入姓名,emailAddress是电子邮件地址
7、使用Root CA为user签名
需要使用到的文件:server.csr, ca.crt,ca.key
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
如果Root(CA证书)没有密码,以上命令后输入两次”y”,生成server.crt成功。
如果报错,请确定运行openssl命令的目录下是否有如下文件夹:
—demoCA(一级)
– newcerts(二级)
– private(二级)
及demoCA文件夹下有如下文件:
demoCA
– index.txt
– serial
index.txt为空白文件,serial文件中输入数字如:123.
三个步骤操作完成,附上Root CA crt格式转换为der格式命令:
openssl x509 -in ca.crt -outform DER -out ca.der
der格式适用于某些移动设备导入根证书。
参考:
http://www.server110.com/apache/201309/1542.html
http://www.2cto.com/Article/201305/207362.html
http://suky.iteye.com/blog/713687
http://www.tuicool.com/articles/iIbM7n
http://cnzhx.net/blog/add-a-ssl-ca-to-firefox/
https://my.oschina.net/itblog/blog/651434 (特别推荐)