一鍵自簽本地 TLSv3 多域名 SAN 域名證書工具 HTTPS(最新版 Chrome 瀏覽器策略測試通過)

一鍵自動生成本地自簽名SAN域名證書工具

  • 原生OpenSSL生成自簽名SAN CA域名(V3簽名),在Linux、MacOS系統下籤發測試通過。
    用於一鍵快速生成開發和測試場景證書,內部平台授權和私有DevOps平台搭建。
  • 截至最新版本 Chrome 89.0.4389.90 (x86_64) 版本測試通過。
  • 作者: Jack Liu ljq@Github
  • 聲明:
    • 本腳本工具僅供開發人員搭建開發和測試環境,禁止用於其他目的!
    • 瀏覽器安全策略變更(截止日期:2021-03-11):
      • 1.Chrome 58的安全改變:普通名稱支援被刪除。使用SAN。
      • 2.Chrome證書安全策略被限制為最多398天,超過標記不安全。

English

檢查開啟擴展支援模組:v3_req:
(簽發完畢後建議恢復關閉)

req_extensions = v3_req # The extensions to add to a certificate request

custom.cnf:

# [嚴正聲明]
# 該腳本僅用於開發人員的本地Dev開發和Test測試環境測試,禁止用於其他用途!

[CNF]
# 通配符域名
DOMAIN_NAME="*.wdft.com"

# 瀏覽器安全策略更改(截至日期:2021-03-11):
# 1.Chrome 58版本開始的安全改變:普通名稱支援被刪除。使用SAN標記替代。
# 2.Chrome證書被限制為最多398天。

# 有效的398天(天數範圍必須小於或等於398天)
VALID_DAYS=398

# TLS文件生成默認當前路徑:
SAN_TLS_PATH="tls-ca"

# Default SUBJECT info: SUBJECT=/C=/ST=/L=/O=/OU=/CN=/emailAddress=
# C =>國家名稱(2位首字母簡寫)
# ST =>狀態名
# L =>城市名稱
# O =>組織名稱
# OU =>組織單位

SUBJECT.C=CN
SUBJECT.ST=Shanghai
SUBJECT.L=Shanghai
SUBJECT.O=Localhost
SUBJECT.OU=IT-DEV

CA生成文件目錄結構示例:

主域名wdft.com為例:

├── custom.cnf              # 腳本自定義配置文件
├── tls-ca                  # 自簽證書生成目錄 
│   ├── vhost_wdft.com.conf # Nginx vhost demo
│   ├── wdft.com_ca.crt     # 客戶端根證書(導入或安裝,添加信任)
│   ├── wdft.com.crt        # 伺服器密鑰對(.crt)
│   ├── wdft.com.key        # 伺服器密鑰對私鑰(.key)
│   └── wdft.com.pem        # 伺服器密鑰對(.pem)
│
├── tls-ca-process         # 流程文件,用於備份和診斷
│   └── 2021-03-13
│       ├── ca.crt
│       ├── ca.key
│       ├── server.crt
│       ├── server.csr
│       └── server.key
│
├── gen-tlsv3-san-ca.sh
└── san.cnf                 # SAN: 此文件首次自動生成

客戶端:導入並安裝根CA文件

  • 下載 [主域名]_ca.crt文件,將crt文件導入並安裝
  • 客戶端證書添加信任。

項目地址:

gen-tlsv3-san-ca@Github