使用openssl创建自签名证书

1.创建根CA(完成一次)

1.1创建根密钥

注意:这是用于签署证书请求的密钥,持有此证书的任何人都可以代表您签署证书。因此,请将其保存在安全的地方!

openssl genrsa -des3 -out rootCA.key 4096

如果要使用不受密码保护的密钥,只需删除该-des3选项

1.2创建并自签名根证书

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 365 -out rootCA.crt

执行以上命令后会让输入以下信息,没有的直接按回车跳过
Country Name CN
State or Province Name HeBei
Locality Name (eg, city) ShiJiaZhuang
Organization Name jjj
Organizational Unit Name jjj
#如果没域名输入ip xx.xx.xx.xx
Common Name (eg, your name or your server’s hostname) xxx.com
Email Address xxx@qq.com
之后的可直接跳过

在这里,我们使用根密钥 rootCA.key创建了根证书rootCA.crt,该证书需要在所有必须信任我们的计算机中分发。
根证书rootCA.crt放在公网上让用户下载和安装到电脑或手机中,windows电脑中双击安装,android手机中在设置->安全->更多安全设置->加密和凭证->从存储设备安装中点击下载的根证书rootCA.crt文件安装
谷歌浏览器证书应安装到受信任的根证书颁发机构,ios系统安装证书后还要开启证书

2.创建证书(为每个服务器完成)

对于需要来自我们CA的受信任证书的每个服务器/设备,都需要遵循此过程

2.1创建证书密钥

openssl genrsa -out xxx.com.key 4096

2.2创建签名(csr)

openssl req -new -key xxx.com.key -config certificate.conf -out xxx.com.csr

certificate.conf配置文件内容

[req]
default_bits = 4096
prompt = no
req_extensions = req_ext
distinguished_name = dn
[dn]
C = CN
ST = HeBei
L = ShiJiaZhuang
O = jjj
OU =jjj
emailAddress = xxx@qq.com
CN = xxx.com
[req_ext]
extendedKeyUsage = serverAuth
#subjectAltName配置是必须要有的,如果没有谷歌、ie等浏览器和android手机安装上证书后同样会被拦截
subjectAltName = @alt_names
[alt_names]
#如果是局域网没有域名写DNS.1 = localhost
DNS.1 = xxx.com
IP.1 = xx.xx.xx.xx
IP.2 = 127.0.0.1

上面的配置可能不需要default_md = sha256

2.3使用签名xxx.com.csr和证书密钥xxx.com.key以及CA密钥rootCA.key和CA签名rootCA.crt生成证书

openssl x509 -req -in xxx.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out xxx.com.crt -days 365 -sha256 -extfile certificate.conf -extensions req_ext

生成的xxx.com.key和xxx.com.crt使用服务器部署https需要用到的证书秘钥和证书

参考

证书生成方法:
https://gist.github.com/fntlnz/cf14feb5a46b2eda428e000157447309 评论很有用
apple产品中受信任证书的要求:
https://support.apple.com/en-us/HT210176
apple产品生成ssl证书还可参考此方法:
https://jaanus.com/ios-13-certificates/#:~:text=If%20I%20understand%20things%20correctly,certificate%20as%20trusted%20in%20iOS.

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值