在当今数字化的时代,网络安全变得至关重要。SSL(Secure Socket Layer)证书和CA(Certificate Authority)证书作为保护网络通信安全的重要工具,发挥着关键作用。

一、SSL证书

SSL证书是数字证书的一种,类似于服务器的电子身份证。它通过加密技术,确保客户端与服务器之间的数据传输安全。当用户访问一个配置了SSL证书的网站时,客户端和服务器之间会建立一个加密的连接,使得数据在传输过程中难以被窃取或篡改。

SSL证书的主要作用包括:

数据加密:使用强大的加密算法对数据进行加密,保护敏感信息的机密性。
身份验证:验证服务器的身份,确保用户连接到的是真实可信的网站,而不是恶意的伪造网站。
信任建立:向用户展示网站的合法性和安全性,增强用户对网站的信任。

二、CA证书

CA证书是由权威的CA机构颁发的证书。CA机构作为受信任的第三方,负责验证申请者的身份,并颁发相应的数字证书。

CA证书的重要性在于它是构建信任链的基础。当客户端收到服务器的证书时,会验证该证书是否由受信任的CA机构颁发。如果是,客户端就可以信任该证书,并建立安全的连接。

三、相关证书文件

  • X.509证书:这是一种通用的证书格式,包含证书持有人的公钥、加密算法等信息。每一个X.509证书都是根据公钥和私钥组成的密钥对来构建的,遵循X.509国际标准。
  • PKCS#7和PKCS#12证书:公钥加密标准PKCS中定义的证书格式,具有特定的用途和功能。
  • JKS证书:Java环境专用的证书格式,在Java应用中广泛使用。
  • PEM证书:Base64(ASCII)编码的文本格式证书,常见扩展名包括PEM、CRT和KEY。可以通过文本编辑器打开和查看,具有较好的可读性。
  • DER证书:Binary二进制文件格式证书,扩展名包括DER和CER。通常以二进制形式存储,不易被人类直接读取。
  • CSR证书:证书签名请求(Certificate Signing Request),包含证书持有人的信息,如国家、邮件、域名等。在申请证书时,需要向CA机构提交CSR文件。

四、商业证书与自签证书的多域SAN证书

什么是 SAN 证书?

主题备选名称(SAN)SSL 证书是一种SSL 证书,允许用户使用单个证书保护多个域名。与为每个域名购买单独的 SSL证书相比,SAN 证书提供了一种高效的方法,它将域名纳入单个 SSL 证书的主题替代名称字段。这可确保您的域名安全,访问者将在地址栏中看到熟悉的挂锁符号,表明连接安全。
  Subject Alternative Name(主体别名)是一个证书扩展字段,用于指定证书所适用的主机名列表。当客户端连接到服务器时,会检查服务器返回的证书中的主体别名是否包含与请求的主机名匹配的条目。
 SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。它允许一个证书支持多个不同的域名。通过使用SAN字段,可以在一个证书中指定多个DNS名称(域名)、IP地址或其他类型的标识符,这样证书就可以同时用于多个不同的服务或主机上。这种灵活性意味着企业不需要为每个域名单独购买和安装证书,从而降低了成本和复杂性。
  先来看一看 Google 是怎样使用 SAN 证书的,下面是 Youtube 网站的证书信息:

alt text

  这里可以看到这张证书的 Common Name 字段是 *.google.com,那么为什么这张证书却能够被 www.youtube.com 这个域名所使用呢。原因就是这是一张带有 SAN 扩展的证书,下面是这张证书的 SAN 扩展信息:

alt text

alt text

  这里可以看到,这张证书的 Subject Alternative Name 段中列了一大串的域名,因此这张证书能够被多个域名所使用。对于 Google 这种域名数量较多的公司来说,使用这种类型的证书能够极大的简化网站证书的管理。

普通 SSL 证书与 SAN 证书的区别

标准 SSL 证书通常为单个域名签发,并覆盖该特定域名。 例如,example.com的 SSL 证书不一定涵盖blog.example.com 或shop.example.com。

另一方面,SAN SSL 证书允许在主题替代名称字段下列出多个域名。 这样,用户就可以使用单个证书保护多个域的安全,而无需管理或更新多个证书。

SAN 证书和多域证书是否相同?

是的,SAN 证书本质上是 多域 SSL 证书或UCC 证书。 SAN一词指的是证书详细信息中列出的主题备选名称,允许同一证书保护不同的域和子域。

因此,当有人提到多域 SSL 证书时,他们通常指的是 SAN SSL 证书。

使用 SAN SSL 证书的好处

SAN 证书为多个域提供一站式解决方案,具有多种优势。 让我们深入了解使用 SAN SSL 证书满足在线安全需求的核心优势:

多域名安全:使用 SAN 证书,只需一张证书就能确保多个域名(包括一级子域)的安全。 这为拥有多个域名的网站提供了统一的解决方案。
成本效益高:为每个域名管理单独的 SSL 证书既费时又费钱。 SAN SSL 证书可减少这种麻烦,而且成本效益高。
灵活性:SAN SSL 证书的一大优势是灵活性。 如果需要添加、修改或删除 SAN,可以不重新签发整个证书。
统一管理:集中管理多个域的证书,简化管理任务,确保各域的 TLS 证书详细信息保持一致。

SAN 证书常见用例

在庞大的网络安全生态系统中,SAN 证书在各种环境中都能发挥作用。 为了让您更清楚地了解情况,让我们来探讨一下 SAN 证书非常有用的一些最常见情况:

保护单个父域下的多个子域:SAN 证书可以列出特定的子域,而不是为无限制的子域获取通配符证书。
多平台环境:非常适合用一个证书保护不同平台,如网络和邮件服务器。
统一通信 (UC) 和 Microsoft Exchange 环境:UCC(统一通信证书)或 UCC SSL 证书是这些设置的理想选择。
同时保护域名的 www 和非 www 版本:确保两个版本同样安全的共同要求。

SAN证书的在请求CSR中SAN多域的写法

OpenSSL中申请带有SAN扩展的证书请求配置文件

创建带有SAN扩展字段的证书签名请求(CSR)的配置文件, alt_names 的配置段为SAN扩展字段配置。确保在将其保存至文件(如csr.conf)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[ req ] 
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = v3_ext
distinguished_name = dn
[ dn ]
C = CN
ST = ShangDong
L = SZ
O = Wise2c
OU = Wise2c
CN = zmc
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = *.zmcheng.com
DNS.2 = *.zmcheng.net
DNS.3 = *.zmc.com
DNS.4 = *.zmc.net
[ v3_ext ]
basicConstraints=CA:FALSE
keyUsage=keyEncipherment,dataEncipherment
extendedKeyUsage=serverAuth,clientAuth
subjectAltName=@alt_names

注意:SAN扩展字段不仅可以配置域名,还可以配置邮箱、IP地址、URI,在任何本地的证书申请中务必考虑增加多主机名到SAN中,可以不用,但必须包含

Subject Alternate Name values. (Note that these values may not be valid if invalid values were contained within a parsed certificate. For example, an element of DNSNames may not be a valid DNS domain name.)
DNSNames []string
EmailAddresses []string
IPAddresses []net.IP // Go 1.1
URIs []*url.URL // Go 1.10

各类应用系统的证书安全

Exchange邮件服务器证书及SAN列表写法

思科ESA邮件网关证书及SAN列表写法

注意事项:

  • 需要PKCS#12的证书格式,证书的扩展名可以是.pfx
  • 导入证书验证时需要证书链
  • 证书命令:openssl pkcs12 -export -out your_output_cert.pfx -inkey your_private_key.key -in your_public_key.cer -certfile Certificate-chain.cer

Aruba onboard证书授权及https、Radius、Radsec、Database的签名证书及SAN列表写法

Kubernetes的安全证书及SAN列表写法

Citrix ADC的网关证书及SAN列表写法