通过openssl生成https的证书
单向https,传输过程中对数据加密,服务端对客户端不做验证。
证书文件生成:
一.服务端
1.生成服务端私钥(key文件)
openssl genrsa -des3 -out server.key 1024
运行后提示输入密码,生成server.key
2.生成服务端证书签名请求文件(csr文件)
openssl req -new -key server.key -out server.csr
生成Certificare Signing Request(CSR),生成的server.csr文件交给CA签名后生成服务端自己的证书,根据屏幕提示,一步一步输入个人信息(如Country,province,city,company等)
二.客户端
和服务端一样生成client.key和client.csr文件
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr
三.生成CA证书文件
server.csr和client.csr文件必须有CA的签名才能形成证书
1.生成CA的key文件
openssl genrsa -des3 -out ca.key 1024
2.生成CA自签名证书
openssl req -new -x509 -key ca.key -out ca.crt
可以加证书过期时间选项 "-days 365"
四.用CA证书进行签名
用生成的CA证书为server.csr,client.csr 文件签名,利用openssl中附带的CA.pl文件(在安装目录openssl/apps目录下)
1.ca.pl -newca,在提示输入已有的证书文件时,输入上面的ca.crt证书文件
2.生成服务端证书文件
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
3.生成客户端证书文件
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
必须保证openssl.cnf在当前目录下,这个文件可以在apps目录中找到。