网上现在很多SANs自签证书基本都是老版本单域名的自签教程,多域名证书很多也写的不是很简洁,杂乱无章。
以debian为例,理论上linux都能用。
1.生成key (输入两遍相同的密钥),并记住密钥
openssl genrsa -des3 -out mydomain.key 2048
2.生成csr (输入key的密钥,然后一直回车即可)
openssl req -new -key mydomain.key -out mydomain.csr
3.删除key的密钥 (输入key的密钥)【mydomain.key.org为原始key文件】
cp mydomain.key mydomain.key.org ; openssl rsa -in mydomain.key.org -out mydomain.key
4.新建mydomain.txt (将文件中 mydomain.com 替换成 你的域名)
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer:always
basicConstraints = CA:TRUE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign
subjectAltName = DNS:mydomain.com, DNS:*.mydomain.com
issuerAltName = issuer:copy
5.生成cert证书文件
openssl x509 -req -in mydomain.csr -signkey mydomain.key -out mydomain.crt -days 36500 -sha256 -extfile mydomain.txt
执行完上面的几个步骤,会在当前目录下生成 mydomain.key mydomain.crt 两个文件,至此教程基本上就结束了(当然还可以生成其它格式的证书文件)。
在证书中可以看到以下信息
DNS Name=mydomain.com
DNS Name=*.mydomain.com
也就是多域名证书配置。
此教程适用于暂时没有域名或某些特殊场景需要使用自签证书的同学。
此方法生成的证书和可信证书 https://www.nodeloc.com/d/23186 的主要区别就是机构不同,有些软件需要忽略机构或tls验证。测试可通过cloudflare(面板需要设置个别参数)。
Good luck to all