自簽瀏覽器授信 CA 證書
此服務器無法證實它就是 127.0.0.1 - 它的安全證書沒有指定主題備用名稱。這可能是因為某項配置有誤或某個攻擊者攔截了您的連接
自簽 SSL 證書瀏覽器不授信,提示連接不安全解決辦法,自簽證書時增加 SAN 信息,將證書添加到受信任的根證書頒發機構
前后對比
| 配置前 | 配置后 |
|---|---|
![]() |
![]() |
主題備用名稱(SAN)說明:
-
主題備用名稱 是證書的擴展字段,它允許證書支持多個域名或 IP 地址。對于自簽證書,如果你希望它能夠適用于 127.0.0.1 或 localhost,你需要在生成證書時指定這個 IP 地址或主機名。
-
問題根源:自簽證書通常只會將證書的 Common Name (CN) 字段設置為一個值(如 localhost 或 127.0.0.1),但在現代瀏覽器中,瀏覽器更偏向于檢查 SAN 字段,以確保安全性。
1.創建一個 OpenSSL 配置文件
openssl.ini
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
req_extensions = v3_req # 指定請求使用 v3_req 擴展
prompt = no # 不提示輸入
[ req_distinguished_name ]
C = US
ST = California
L = San Francisco
O = My Company
OU = My Department
CN = localhost
emailAddress = admin@mycompany.com
[ v3_req ]
subjectAltName = @alt_names # 引用 alt_names
[ alt_names ]
DNS.1 = localhost
IP.1 = 127.0.0.1
配置文件說明:
-
[ req_distinguished_name ] 部分:定義了證書的基本信息,
- C:國家
- ST:省份
- L:城市
- O:組織
- OU:單位
- CN:常見名稱
- emailAddress:電子郵件地址
-
[ v3_req ]:這里指定了擴展字段
subjectAltName,并引用了alt_names部分。 -
[ alt_names ]:定義了備用名稱,
DNS.1是域名,IP.1是 IP 地址。這里包括localhost和127.0.0.1,這樣證書會為這兩個名稱生效。
2.生成自簽證書
使用這個配置文件來生成證書和私鑰:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out certificate.crt -config ./openssl.ini -extensions v3_req
這個命令會生成一個包含 主題備用名稱(SAN) 的自簽證書。
days 365:指定證書的有效期為 365 天。nodes:表示不使用密碼保護私鑰。newkey rsa:2048:生成一個新的 2048 位 RSA 密鑰對。keyout private.key:指定私鑰的輸出文件名。out certificate.crt:指定證書的輸出文件名。config openssl.ini:指定自定義的 OpenSSL 配置文件。extensions v3_req:指定證書包含 SAN 擴展
3.導入證書到瀏覽器
- 雙擊
certificate.crt文件 - 安裝證書:-> 本計算機 -> 將所有的證書都放入下列存儲 -> 瀏覽 ->
受信任的根證書頒發機構 - 退出瀏覽器后臺(不是關閉標簽頁)
- 重新打開訪問對應網站
4.檢查證書
- 你可以使用工具如 OpenSSL 或瀏覽器的證書查看器來驗證生成的證書是否包含正確的 SAN。
使用 openssl 命令查看證書:
openssl x509 -in certificate.crt -text -noout
確保在證書信息中可以看到類似下面的部分:
X509v3 extensions:
X509v3 Subject Alternative Name:
DNS:localhost, IP Address:127.0.0.1
總結:
瀏覽器警告的原因是自簽證書沒有設置主題備用名稱(SAN)。要解決這個問題,生成自簽證書時需要指定 SAN,確保包括你打算訪問的主機名或 IP 地址(如 localhost 和 127.0.0.1)。
哇!又賺了一天人民幣



浙公網安備 33010602011771號