OpenSSL使用,私钥、公钥、证书自签名流程

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/

上一篇:openssl工具中的public key 和 private key


下一篇:使用 OpenSSL API 建立安全连接 - 双向认证