通过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目录中找到。