了解什么是SAN证书以及如何使用OpenSSL创建
通过使用SAN证书,可以为多个网站使用单个证书来降低SSL成本和维护成本
SAN代表“Subject Alternative Names”,这有助于您为多个CN(通用名称)拥有单个证书。
你可能会认为这与wildcard SSL相同,但请让我告诉你-它略有不同。在SAN证书中,您可以拥有多个完整的 CN。
例子:
- yaoweibin.com
- gf.dev
- siterelic.com
- chandan.io
我可以在一个单独的证书中拥有以上所有和更多。这意味着我只需buy one cert并在多个URL中使用。
听起来很有趣吗?
为SAN创建CSR的过程与传统的OpenSSL command略有不同,稍后将解释如何为Subject Alternative Names SSL证书生成CSR。
让我们看一个实时示例,skype.com在一个单一证书中有多个SAN。
如上例所示-如果您管理多个https URL,您可以考虑将其合并为一个带有SAN的单个SSL证书,并节省数千美元。
您对此有何看法?
创建带有SAN的CSR的步骤
- 登录到已安装有OpenSSL的服务器
- 进入 /tmp 或创建任意目录
- 使用vi(如果在Unix上)创建一个名为san.cnf的文件,并填入以下信息
[ req ] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = req_ext [ req_distinguished_name ] countryName = Country Name (2 letter code) stateOrProvinceName = State or Province Name (full name) localityName = Locality Name (eg, city) organizationName = Organization Name (eg, company) commonName = Common Name (e.g. server FQDN or YOUR name) [ req_ext ] subjectAltName = @alt_names [alt_names] DNS.1 = bestflare.com DNS.2 = usefulread.com DNS.3 = chandank.com
注意:alt_names部分是您需要改变以添加额外DNS的部分。
- 保存文件并执行以下OpenSSL命令,将生成CSR和KEY文件
openssl req -out sslcert.csr -newkey rsa:2048 -nodes -keyout private.key -config san.cnf
这将在当前工作目录中创建sslcert.csr
和private.key
文件。您需要将sslcert.csr
发送给证书签发机构,以便他们可以为您提供带有SAN的证书。
如何验证带有SAN的CSR?
检查您的CSR是否包含在san.cnf
文件中指定的SAN可能是个好主意。
openssl req -noout -text -in sslcert.csr | grep DNS
例如:
[root@Chandan test]# openssl req -noout -text -in sslcert.csr | grep DNS DNS:bestflare.com, DNS:usefulread.com, DNS:chandank.com [root@Chandan test]#
一旦您对CSR满意,您可以将其发送给您的证书颁发机构以签署证书。或者,您可以从SSL Store处购买。