如何生成多域名证书

多域名证书

https://www.digicert.com/subject-alternative-name.htm

Multi-Domain (SAN) Certificates - Using Subject Alternative Names 使用者备用名称

The Subject Alternative Name Field Explained

The Subject Alternative Name field lets you specify additional host names (sites, IP addresses, common names, etc.) to be protected by a single SSL Certificate, such as a Multi-Domain (SAN) or Extend Validation Multi-Domain Certificate.

 

SAN域让你可以指定被单个SSL证书保护的额外的主机名(站点名称、IP地址等等)。

打开一个https网站,如https://www.baidu.com/,点击地址栏上绿色的锁,查看它的证书,点击详细信息,找到“使用者备用名称”,可以看到里面有很多网址。


 

生成多域名证书的步骤

第一步:生成多域名证书的CSR

方法一:用openssl生成多域名证书的CSR

How to generate a new Certificate Signing Request (CSR):

Generate a TLS private key if you don't have one:

openssl genrsa 4096 > domain.key

Generate a CSR for your the domains you want certs for:

(replace "foo.com" with your domain)

Linux:

#change "/etc/ssl/openssl.cnf" as needed:

#  Debian: /etc/ssl/openssl.cnf

#  RHEL and CentOS: /etc/pki/tls/openssl.cnf

#  Mac OSX: /System/Library/OpenSSL/openssl.cnf

 

openssl req -new -sha256 -key domain.key -subj "/" \

  -reqexts SAN -config <(cat /etc/ssl/openssl.cnf \

  <(printf "[SAN]\nsubjectAltName=DNS:foo.com,DNS:www.foo.com"))

 

方法二:java下的keytool生成多域名证书的CSR

keytool -genkeypair -dname "CN=example.com"  -keyalg RSA  -alias example -keypass 123456 -keystore example.jks  -storepass 123456 -validity 3650

 

keytool -certreq -keyalg RSA -keystore example.jks -storepass 123456 -alias example -ext san=dns:www.example.com -file example.csr

 

第二步:将CSR提交给CA去签名

 

第三步:将签名结果、中间证书和根证书配置到服务器上,或先导入到keystore中,再把keystore配置到服务器上。

 

注意:

有人声称可以在dname中配置多个CN来制作多域名证书,经过测试,这个方法是行不通的,在导入签名结果后,只有第一个CN生效。

 

参考资料:

https://gethttpsforfree.com/

http://serverfault.com/questions/488003/keytool-serveralternatename

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置一个支持多个域名的 OpenSSL 证书,可以按照以下步骤进行: 1. 编写一个 OpenSSL 配置文件(通常以 .cnf 结尾),可以参考以下示例: ``` [ req ] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = req_ext [ req_distinguished_name ] countryName = XX stateOrProvinceName = XXXX localityName = XXXX organizationName = XXXX commonName = example.com [ req_ext ] subjectAltName = @alt_names [ alt_names ] DNS.1 = example.com DNS.2 = www.example.com DNS.3 = subdomain.example.com ``` 2. 运行以下 OpenSSL 命令生成证书和私钥: ``` openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr -config example.com.cnf openssl x509 -req -sha256 -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt -extfile example.com.cnf -extensions req_ext ``` 其中 example.com.key 是私钥文件,example.com.csr 是证书请求文件,example.com.crt 是证书文件。 3. 将生成证书和私钥文件配置到 Web 服务器上,具体操作可以参考不同 Web 服务器的文档。例如,在 Apache 上可以使用以下配置: ``` SSLEngine on SSLCertificateFile /path/to/example.com.crt SSLCertificateKeyFile /path/to/example.com.key ``` 4. 如果需要支持更多域名,只需要在 OpenSSL 配置文件的 alt_names 中添加更多 DNS 记录即可。例如: ``` [ alt_names ] DNS.1 = example.com DNS.2 = www.example.com DNS.3 = subdomain.example.com DNS.4 = example.net DNS.5 = www.example.net ``` 5. 生成新的证书和私钥文件,将其配置到 Web 服务器上即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值