转载:https://www.cnblogs.com/tugenhua0707/p/10927722.html
1 使用openssl工具生成一个RSA私钥
openssl genrsa -des3 -out server.key 2048
我们查看刚刚生成的私钥。使用命令如下:
openssl rsa -text -in server.key
2. 创建证书签名请求CSR文件
openssl req -new -key server.key -out server.csr
-key的含义是:指定ca私钥
-out的含义是: server.csr 生成证书文件
运行如上命令后,生成CSR时会要求填入以下信息:
Country Name (2 letter code) []:CN // 输入国家代码,中国填写 CN
State or Province Name (full name) []:HangZhou // 输入省份,这里填写 HangZhou
Locality Name (eg, city) []:HangZhou // 输入城市,我们这里也填写 HangZhou
Organization Name (eg, company) []:tbj // 输入组织机构(或公司名,我这里随便写个tbj)
Organizational Unit Name (eg, section) []:tbj // 输入机构部门
Common Name (eg, fully qualified host name) []:*.abc.com // 输入域名,我这边是 (*.abc.com)
Email Address []:tugenhua0707@qq.com // 你的邮箱地址
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456 // 你的证书密码,如果不想设置密码,可以直接回车
如上操作后,会在当前目录下生成以下两个文件:
server.key server.csr
查看csr文件如下命令:
openssl req -text -in server.csr -noout
3. 生成CA证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
x509的含义: 指定格式
-in的含义: 指定请求文件
-signkey的含义: 自签名
查看证书
openssl x509 -text -in server.crt -noout
4. 生成客户端证书
生成客户端证书与生成CA证书相似。
4.1. 先要生成私钥
使用命令:
openssl genrsa -out client.key 2048
4.2 生成请求文件
使用命令:
openssl req -new -key client.key -out client.csr
4.3 发给ca签名
使用命令:
openssl x509 -req -days 365 -in client.csr -signkey client.key -out client.crt
其他
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
crt转pem
openssl x509 -in server.crt -out server.crt.pem
key转pem
openssl rsa -in server.key -out server.key.pem