一般个人开发者 不嫌麻烦的话可以使用免费的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 建立过程简化如下:
-
客户端(浏览器)访问网站。
-
网站返回其「公钥证书」给客户端。
-
客户端验证证书是否由「可信 CA」签发(浏览器内置了上百个 CA 根证书)。
-
验证成功后,用公钥加密数据,建立 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:13 PM
Expires On Sunday, March 22, 2026 at 3:01:12 PM
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 服务器证书 |