所謂的筆記不過是參考黑暗執行緒的Blog:使用 OpenSSL 製作萬用字元 SSL 憑證,將其中的文字敘述稍作整理,其中如有不明白,建議到該網站再次細讀。

環境:Windos Server 2019 + IIS。

首先,下載 OpenSSL for Windows

接下來依序是:

1.產生根憑證(rootCA.key)  –>  openssl genrsa -des3 -out rootCA.key 4096

2.產生CA憑證(rootCA.crt)  –>  openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 36500 -out rootCA.crt

3.匯入憑證至受信任的根憑證授權單位(IIS and Client) –>  certutil -f -addstore root rootCA.crt

4.匯入中繼憑證授權單位(IIS and Client)            –>  certutil -f -addstore ent  rootCA.crt

5.產生萬用字元憑證的域名,在此以 *.168.coffee 為例。

6.憑證要求檔(CSR)的設定檔(168.coffee.conf),內容如下:

[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn

[dn]
C=TW
ST=Taiwan
L=Taichung
O=168.coffee
OU=168.coffee_CA
emailAddress=nobody@168.coffee
CN=*.168.coffee

7.產生萬用字元的憑證金鑰 –> openssl genrsa -out 168.coffee.key 2048

8.建立憑證請求檔CSR(168.coffee.csr) –> openssl req -new -sha256 -nodes -key 168.coffee.key -out 168.coffee.csr -config 168.coffee.conf

9.準備V3設定檔 168.coffee_v3.conf

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = *.168.coffee

10.產生CRT憑證(168.coffee.crt) –> openssl x509 -req -in 168.coffee.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out 168.coffee.crt -days 36500 -sha256 -extfile 168.coffee_v3.conf

11.用於IIS時,需將.crt轉為包含私鑰的.pfx –> openssl pkcs12 -export -out 168.coffee.pfx -inkey 168.coffee.key -in 168.coffee.crt -certfile rootCA.crt

PS:

※產生各種憑證時,openssl會視需要,要求設定密碼。

※文中 openssl 使用的各種參數,可以到各大網站搜尋及參閱。

※如用NAS產生.csr及.key,並要轉成.pfx,可利用open ssl處理:

openssl pkcs12 -inkey server.key -in server.cer -export -out server.pfx

資料來源:使用 OpenSSL 製作萬用字元 SSL 憑證