openssl SAN 多域名证书 Subject Alternative Name
来源:原创
时间:2020-01-31
作者:脚本小站
分类:Linux
配置示例:
[ req ] distinguished_name = req_dn req_extensions = req_ext prompt = no [ req_dn ] C = BJ ST = Beijing L = Beijing City O = HSNU OU = CNMC CN = www.ipaipan.com emailAddress = root@hs.ntnu.edu. tw [ req_ext ] basicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment subjectAltName = @alt_names [ alt_names ] DNS.1 = www.scriptjc.com DNS.2 = www.zhuqiyang.com DNS.3 = www.ipaipan.com IP.1 = 127.0.0.1
注释:
[ req ]:表示接下来这段设定档是给openssl req用的。
distinguished_name:这边指定了我们产生CSR需要的资讯放在req_dn这一块区域。
req_extensions:这边指定了CSR要用的扩充(extension)放在req_ext这一块区域。
prompt这边设成no ,表示不用互动式输入,直接拿distinguished_name的资料来用就可以。
[ req_dn ]:这边指定的其实就是我们在互动式输入里输入的国家、地区、domain name等等资讯,可以参考上一篇带过的参数。
[ req_ext ]:这边指定的是要用的扩充相关的资讯。
在basicConstraints中我们指定CA:FALSE表示这不是一个CA的cert(非必要)。
在keyUsage中我们指定了密钥用途为数位签名(digitalSignature)、密钥加密(keyEncipherment);根据不同的用途这边可以指定不同的值,可以参考OpenSSL文件或者直接看RFC 3280 Section 4.2.1.3
在subjectAltName中我们指定了SAN设定在alt_names这一区;当然也可以全部用成一行写在这边,不过这样看起来很累XD。
在[ alt_names ]:中,我们使用DNS.#来指定每个domain;当然这块能放的其实不只有domain ,可以参考相关文件。
可以使用通用域名或网段:
[ alt_names ] DNS.1 = example.com DNS.2 = *.example.com IP.1 = 192.168.0.0/16 IP.2 = 10.0.0.0/8