shell命令全部没有在openssl里面操作,所以前面带有 openssl。如果你想进入openssl操作,需将前面的openssl去掉
OpenSSL下载地址
http://slproweb.com/products/Win32OpenSSL.html
上面的是win环境下的openssl,linux一般都有内置,可以直接输入 openssl 打开openssl
私钥、公钥、证书之间的关系
后缀名 | 名字 | 详细信息 |
---|---|---|
key | 私钥 | 明文 自己生成的 |
csr | 公钥 | 由私钥生成 |
crt | 证书 | 公钥+签名 |
生成步骤
生成私钥
openssl genrsa -des3 -out server.key 1024
也可以在控制台输入 genrsa,会默认生成一个 2048 位的私钥
在生成私钥的时候需要输入一个4位以上的私钥密码,之后使用私钥生成公钥以及nginx使用https时都需要使用到这个私钥密码
由私钥生成公钥
openssl req -new -key server.key -out server.csr
- Country Name (2 letter code) [XX]:CN #请求签署人的信息
- State or Province Name (full name) []: #请求签署人的省份名字
- Locality Name (eg, city) [Default City]:# 请求签署人的城市名字
- Organization Name (eg, company) [Default Company Ltd]:#请求签署人的公司名字
- Organizational Unit Name (eg, section) []:#请求签署人的部门名字
- Common Name (eg, your name or your server’s hostname) []:#这里一般填写请求人的的服务器域名,
可以对证书进行查看,查看命令是:openssl req -text -in server.csr -noout
可以查看到私钥生成的公钥信息,签署人、城市名、公司名和部门名等
签名(生成证书)
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
如果你是给CA机构去签名的话,这部分都是CA机构操作的
查看证书
openssl x509 -text -in server.crt -noout
工具
还有个工具也能在windows下进行 私钥、公钥、证书的创建,图形化界面的操作方式
下载链接:https://sourceforge.net/projects/xca/