流程分为3步:生成私钥 – 生成CSR – 自己颁发证书
# 1、生成RSA私钥 [root@docker-server cert]# openssl genrsa -out server.key 2048 openssl OpenSSL工具,用于处理加密和证书管理。 genrsa 生成 RSA 私钥(PKCS#1 格式)。 -out server.key 指定输出文件 server.key(存储私钥)。 2048 指定密钥长度为 2048 位(常见长度包括 2048、3072、4096 位)。 建议2048以上,1024在nginx中重启时会提示错误:长度过小。 # server.key 内容 -----BEGIN RSA PRIVATE KEY----- ··· ··· ··· -----END RSA PRIVATE KEY----- 私钥的编码格式通常分为 PKCS#1 和 PKCS#8。 PKCS#1 是 RSA 密钥结构标准,PKCS#1私钥通常使用 PEM 格式存储。 PEM(Privacy-Enhanced Mail)文件是 Base64 编码的文本格式。 PS:使用 genpkey 命令生成 PKCS#8 格式的 RSA 私钥 [root@docker-server cert]# openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:2048 # server.key 内容 -----BEGIN PRIVATE KEY----- ··· ··· ··· -----END PRIVATE KEY----- PKCS#8 和 PKCS#1 私钥格式可以互相转换。 # 2、生成csr(Certificate Signing Request证书签名请求) [root@docker-server cert]# openssl req -new -key server.key -out server.csr 生成证书签名请求(CSR),CSR 是向 证书颁发机构(CA) 申请 SSL/TLS 证书时提交的文件。 openssl req 调用 OpenSSL 的 req(Request)模块,用于处理证书请求 csr。 -new 生成一个新的 CSR(不是已有证书的更新)。 -key server.key 使用 server.key 私钥生成 CSR,公钥通过私钥计算得出。 -out server.csr 生成的证书签名请求(CSR)保存到 server.csr 文件。 使用私钥计算出公钥,生成的CSR中会包含主体信息、公钥,用于将来签名。 填写证书信息,需输入: 国家(C):如 CN 省份(ST):如 Shandong 城市(L):如 Jinan 组织(O):如 YourCompanyName 部门(OU):如 IT 通用名称(CN):如 dev.domain.com 邮箱(emailAddress):如 dev@mail.com 将生成的server.csr提交给CA,CA通过它签发证书。自己作为ca角色的话,就自己签发。 # 3、颁发证书 [root@docker-server cert]# openssl x509 -req -in server.csr -signkey server.key -out server.crt -days 365 参数 说明 -req 表示使用的是 CSR 输入 -in server.csr 输入的 CSR 文件 -signkey server.key 使用哪个私钥签发(此处的签名者和持有者相同) -out server.crt 输出生成的证书 -days 365 有效期 这样生成的 server.crt 就是自签名证书,它的签名者就是它自己。 客户端(如浏览器)默认不信任它,除非你导入它为“受信任根证书”。 总结最后得到3个文件: server.key 私钥 server.csr 证书签名请求 csr server.crt 颁发的证书 # 其它 # 一条命令直接生成私钥和公钥 [root@docker-server a]# openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes -subj '/C=CN/ST=SHANDONG/L=JINAN/O=GAO DE TECH/OU=IT/CN=dev.xxx.com' -nodes 是no des加密 # 提取查看公钥内容 [root@docker-server ca]# openssl x509 -in server.crt -noout -pubkey # 查看证书信息 [root@docker-server ca]# openssl x509 -in server.crt -noout -text
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/5554.html