SSL证书与CA证书

目录

一般个人开发者 不嫌麻烦的话可以使用免费的ssl证书 ,不过一般只有3个月,到了就需要进行更换,否则就是不行的了。或者可以某宝 购买SSL证书,一般Certum 比较便宜,大约18元一个域名,有一个域名可以用/xxxx 来维护其他的服务实例,或者165+ 元买通配符域名,即 *.abc.com 这个也算可以的吧。

但是注意最好自己生成KEY 私钥 + CSR文件,给卖家只要CSR 文件即可,没有私钥即正确,如果一般机构给你公私钥了,那说明不太安全,最好CSR的方法。(但是有一个很无语,腾讯云配置CDN域名竟然还需要key 文件。。。)

介绍

CA 证书(Certificate Authority Certificate) 是由「数字证书颁发机构」签发的证书,它的作用是:

✅ 证明一个网站/服务器的身份是可信的

✅ 用于建立 HTTPS 安全连接(SSL/TLS)

✅ 支持公钥加密和身份验证

一个标准的 CA 证书包含以下内容:

字段 说明
版本 一般是 X.509 v3
序列号 证书的唯一编号
签名算法 比如 SHA256-RSA
颁发者(Issuer) 颁发证书的 CA 机构名称
主题(Subject) 被认证的网站/组织信息
公钥 网站用于加密通信的公钥
有效期 起始时间和过期时间
扩展字段 比如使用场景、证书用途等
签名 CA 用它的私钥签名这份证书,用于防篡改

HTTPS 建立过程简化如下:

  1. 客户端(浏览器)访问网站。

  2. 网站返回其「公钥证书」给客户端。

  3. 客户端验证证书是否由「可信 CA」签发(浏览器内置了上百个 CA 根证书)。

  4. 验证成功后,用公钥加密数据,建立 TLS 安全连接。

•	浏览器和操作系统内置了许多「受信任的根 CA」。
•	所有被这些根 CA 签发的证书都被默认认为是“安全的”。
•	比如你可以在 macOS 查看钥匙串中的「系统根证书」。

名称 说明
Let’s Encrypt 免费证书,自动化颁发
DigiCert 企业级 SSL 提供商
Sectigo(原 Comodo) 非常主流的商业 CA
GlobalSign、Entrust、GeoTrust 也很常见
格式 后缀 说明
PEM .crt, .pem 最常见的,Base64 编码
DER .der 二进制格式
PFX/P12 .pfx, .p12 包含证书+私钥,一般有密码保护

配置CA证书

Nginx 会将服务器证书发送给浏览器(客户端)。这个过程是在 SSL/TLS 握手 时发生的

服务器发送证书:在握手过程中,服务器会将它的 SSL/TLS 证书 发送给客户端(浏览器)。你提供的证书信息就是服务器证书的一部分。

比如

Common Name (CN) 是网站的域名

证书颁发机构(CA) 是为这个证书签名的机构(如 Certum Domain Validation CA SHA2)。

• 证书包含了 公钥 和有效期等信息。

浏览器检查证书的有效性

证书链:浏览器会检查服务器的证书是否由受信任的 证书颁发机构(CA) 签发。浏览器内部维护有一个 受信任的根证书库,这个库包含了许多公认的 CA 证书。

• 如果证书是由库中一个信任的 CA 签发的,并且证书没有过期或被撤销,浏览器就会认为这个证书是有效的。

证书的完整性:浏览器还会验证证书是否被篡改或损坏,比如检查证书的 签名 是否正确。

例如:

Common Name (CN)	a.com
Organization (O)	<Not Part Of Certificate>
Organizational Unit (OU)	<Not Part Of Certificate>
Common Name (CN)	Certum Domain Validation CA SHA2
Organization (O)	Unizeto Technologies S.A.
Organizational Unit (OU)	Certum Certification Authority
Issued On	Thursday, February 20, 2025 at 3:01:13PM
Expires On	Sunday, March 22, 2026 at 3:01:12PM
Certificate	636e3d9789fc0fe53c5f198649844c2afe84207e29b06491fe8ce4f276113277
Public Key	4cceae38bbd94b301ef60771802a1ca2b72ca4e186ff8af9f924900de82bff98

本地生成 Key 和CSR:

字段 说明
公钥(Public Key) 最关键的,用来加密通信,不能丢
主题信息(Subject DN) 包括你是谁(如域名/公司信息)
使用者信息 比如 CN=example.com,O=MyOrg,C=CN 等
签名(Signature) 用你的私钥对这份 CSR 内容进行签名,证明请求是你发的

它是你生成证书前,向 CA 提交的一份请求文件公钥

CA 使用这份请求来颁发最终的 SSL/TLS 证书。

 7240  openssl genpkey -algorithm RSA -out content.abc.com.key
 7241  openssl req -new -key content.abc.com.key -out content.abc.com.csr

整个证书申请流程的关系

graph TD
    A[生成私钥 + 公钥] --> B[生成 CSR 请求包含公钥]
    B --> C[提交给 CA 机构]
    C --> D[CA 验证身份 & 签发证书]
    D --> E[返回带签名的证书包含公钥]

查看信息:

$ openssl x509 -in abc.com.crt -text -noout

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            66:90:7c:57:de:31:26:9c:8e:3e:75:00:c9:c7:32:b8
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = PL, O = Unizeto Technologies S.A., OU = Certum Certification Authority, CN = Certum Domain Validation CA SHA2
        Validity
            Not Before: Feb 20 07:01:13 2025 GMT
            Not After : Mar 22 07:01:12 2026 GMT
        Subject: CN = abc.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:db:01:2c:15:44:ea:60:bc:5a:50:04:22:60:f9:
                    fd:8c:24:1d:69:e8:ca:9e:6b:c2:91:9d:75:f0:13:
                    b1:28:eb:65:67:e0:dc:4c:e8:22:a2:5b:79:ea:7b:
                    40:e8:f1:23:1c:fb:77:53:e8:c1:ac:66:5c:a3:3a:
                    de:7a:15:b5:3c:7d:28:48:39:27:4e:02:08:45:cf:
                    dc:b5:c8:7c:d1:ce:f3:4f:04:44:c9:72:dd:55:31:
                    d8:6d:22:9f:a6:d2:e5:b1:f2:6f:b4:3b:52:5f:a8:
                    eb:d9:4f:18:b6:30:57:ad:70:9b:d0:da:b9:eb:c1:
                    ae:d1:ec:7b:46:0a:b2:47:18:5f:79:e4:f4:70:f4:
                    f3:9d:2b:c7:b1:68:06:66:ff:d5:fd:e8:8b:a5:4b:
                    57:ef:3f:5e:60:d9:59:29:c2:f6:3c:fc:d2:7c:0b:
                    62:92:6c:92:bf:c0:e0:6b:8f:00:06:8e:46:e3:b7:
                    0f:44:0c:17:8c:90:65:4d:73:b7:4c:41:f3:77:df:
                    f3:c6:05:e8:ac:54:44:be:28:24:7d:37:83:b9:8a:
                    1d:82:17:6e:18:f6:7c:b8:fe:04:87:e1:95:65:24:
                    78:dd:4e:69:2a:4e:9f:d0:3b:f2:da:08:0d:e9:dc:
                    d8:5a:4c:e2:e7:66:6f:80:e7:f3:1f:16:bd:e8:c4:
                    d6:0b
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 CRL Distribution Points:
                Full Name:
                  URI:http://crl.certum.pl/dvcasha2.crl
            Authority Information Access:
                OCSP - URI:http://dvcasha2.ocsp-certum.com
                CA Issuers - URI:http://repository.certum.pl/dvcasha2.cer
            X509v3 Authority Key Identifier:
                E5:31:AD:BF:3A:11:96:F4:83:BC:50:3C:D4:B7:90:9B:90:EE:DE:25
            X509v3 Subject Key Identifier:
                C9:B4:0F:B5:EC:A2:ED:2C:59:6A:01:27:78:1E:63:37:F1:4D:B6:EC
            X509v3 Issuer Alternative Name:
                email:dvcasha2@certum.pl
            X509v3 Certificate Policies:
                Policy: 2.23.140.1.2.1
                Policy: 1.2.616.1.113527.2.5.1.3
                  CPS: https://www.certum.pl/CPS
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Subject Alternative Name:
                DNS:abc.com, DNS:www.abc.com
            CT Precertificate SCTs:
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : 19:86:D4:C7:28:AA:6F:FE:BA:03:6F:78:2A:4D:01:91:
                                AA:CE:2D:72:31:0F:AE:CE:5D:70:41:2D:25:4C:C7:D4
                    Timestamp : Feb 20 07:01:14.079 2025 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:45:02:20:4E:3E:7A:7C:1E:A4:E0:B4:E3:93:00:EF:
                                6D:CC:31:D6:8A:64:25:EE:B8:1A:62:C3:87:A3:9B:A4:
                                A0:6A:79:E0:02:21:00:C5:B9:4E:2B:12:F3:C9:5A:53:
                                E3:08:A7:1D:D9:E2:F0:86:BC:BD:AD:31:D2:34:85:99:
                                04:44:2A:56:D1:A1:BA
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : 64:11:C4:6C:A4:12:EC:A7:89:1C:A2:02:2E:00:BC:AB:
                                4F:28:07:D4:1E:35:27:AB:EA:FE:D5:03:C9:7D:CD:F0
                    Timestamp : Feb 20 07:01:14.113 2025 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:44:02:20:32:D0:A2:B9:70:3B:48:4D:06:B2:95:65:
                                E5:2E:AE:81:C8:3E:88:C6:E3:7D:96:CF:C9:99:53:B2:
                                D7:E1:A1:B4:02:20:35:23:0E:0C:C5:38:C8:69:9A:9D:
                                D3:08:C7:79:CA:2E:91:50:37:8A:32:2F:AD:2D:8F:FD:
                                24:3E:3A:64:B3:F5
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : 0E:57:94:BC:F3:AE:A9:3E:33:1B:2C:99:07:B3:F7:90:
                                DF:9B:C2:3D:71:32:25:DD:21:A9:25:AC:61:C5:4E:21
                    Timestamp : Feb 20 07:01:14.272 2025 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:45:02:20:5F:AA:C3:CF:16:47:28:84:17:EC:04:E4:
                                F0:BF:C5:3E:00:2E:6D:1E:9A:C0:C7:8C:AA:D0:0F:D0:
                                34:12:A2:EC:02:21:00:F2:7D:6A:8A:4C:D4:00:59:58:
                                8C:E4:E5:E9:BF:B5:32:B6:6F:8C:9F:6A:C5:94:3D:E8:
                                5F:A2:AA:50:C7:54:3B
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        06:06:f0:09:fd:a8:57:e1:46:bc:41:b8:9e:95:ca:d3:9e:17:
        b1:de:8c:60:2b:0d:12:a0:bc:85:fa:dd:30:17:96:d8:06:37:
        0c:30:6b:d4:6d:38:12:ff:4a:56:79:c8:da:b8:25:81:6e:82:
        69:8c:e6:ed:59:67:26:ce:c7:4c:8e:4f:5c:5c:77:a6:6e:bb:
        4a:13:33:45:3f:d6:1c:62:9a:a4:45:44:01:4f:0c:49:d9:16:
        93:32:66:b9:cb:d6:6c:60:5b:ab:cb:fe:eb:39:c1:08:10:fb:
        5c:51:cb:e1:d0:df:d0:3a:b9:8f:19:d2:7e:02:84:c8:ab:ab:
        65:e3:be:d2:30:02:22:8d:a1:8f:fe:78:b9:62:21:10:c8:63:
        f1:a4:bb:f4:95:72:71:ee:6e:91:21:f4:08:44:71:0d:1d:39:
        79:63:6f:59:38:b8:48:b8:fa:a8:77:4b:f2:47:37:11:c8:74:
        11:61:d5:54:82:96:53:65:56:d8:61:f3:e5:35:d0:06:38:13:
        0e:83:d9:d4:e3:6c:fa:39:8b:07:f2:63:b6:13:3e:3d:4e:e8:
        9b:5a:a2:77:6c:28:20:87:50:3a:d6:96:5e:b4:67:1d:b6:4b:
        ea:5a:d2:c9:21:e3:b0:36:3e:b3:28:0f:91:a2:ff:d2:40:69:
        d3:81:44:0b
  nginx

nginx 配置

 abc.com.crt 是 SSL 证书

   server {
        listen 443 ssl http2;
        server_name abc.com;
        ssl_certificate /home/ubuntu/crt_ssl/abc.com.crt;
        ssl_certificate_key /home/ubuntu/crt_ssl/abc.com.key;

SSL证书vs CA 证书

名称 解释
SSL 证书 是你的网站(比如 example.com)所用的服务器证书,用来保证用户和你之间的通信加密、安全
CA 证书 证书颁发机构(Certificate Authority)自己的身份凭证,用来给你的网站颁发 SSL 证书,属于“上游权威”
[你的网站] —— 使用 ——> SSL证书服务器证书
                      
              CA 机构签发使用它的 CA 根证书/中间证书签名

你访问 https://www.baidu.com,它的 SSL 证书是这样的:

• ✅ 浏览器信任是因为它的证书是由「GlobalSign CA」签发的

• ✅ 浏览器内置了「GlobalSign 的 CA 根证书」

• ✅ 浏览器信任 CA,就会信任你网站的 SSL 证书

角色 比喻
CA 根证书 政府机关颁发的“公章”
中间 CA 证书 各地分支机构的印章
SSL 证书 公司营业执照(你的网站)
浏览器 警察叔叔,用来验证营业执照是否是真的
信任链 营业执照 → 分支盖章 → 总部盖章,最终被信任
[你的 SSL 证书]
        
[中间 CA 证书]
        
[ CA 证书]浏览器内置
文件 含义
CA 根证书.crt 证书颁发机构(CA)的公钥证书
中间证书.crt 是 CA 的下级机构颁发的中级证书
你的服务器 SSL 证书.crt 是你网站申请的SSL 服务器证书

点赞一下

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦