使用openssl自簽證書到IIS並在區域網內訪問
阿新 • • 發佈:2021-07-08
下載安裝openssl
- 下載地址, 進行安裝
- 設定環境變數
- 使用命令
openssl version
驗證是否安裝成功:
設定openssl.cnf
- 新建一個資料夾, 將
D:\Program Files\OpenSSL-Win64\bin\cnf\openssl.cnf
拷貝一份出來, 後面需要進行修改, 並且根據這個配置生成證書, 例如我拷貝到了 - 編輯openssl.cnf檔案, 裡面有幾個地方需要修改
# 找到 req 節點, [ req ] default_bits = 2048 default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes # x509的擴充套件,影響到生成x509的證書生成, 我們後面將使用x509命令, 所以後面對v3_ca這個節點進行修改(此處不用改) x509_extensions = v3_ca # 網上許多文章寫的都是對v3_req命令修改, 本文用不到 req_extensions = v3_req # 找到 v3_ca 節點 [ v3_ca ] # x509命令的擴充套件 subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer basicConstraints = critical,CA:true # 表示可選屬性的擴充套件, 這一行就是我們加上的, 表示定義了一組可選項 subjectAltName = @alt_names # 這一組定義都是新增的, 對應上面的 @alt_names [ alt_names ] # DNS.n 表示證書的可選域名, n為數字, 逐一累加自己填寫即可 DNS.1 = localhost # IP.n 同DNS.n 表示證書的可選ip IP.1 = 127.0.0.1 IP.2 = 10.1.1.1
- 如上面的
openssl.cnf
所示, 就是加入了可選域名和可選ip, 後面會避免瀏覽器報出"Subject Alternative Name missing(沒有可選名稱)"的錯誤 - 我們使用的x509命令生成證書, 所以只修改了x509節點. 如果是使用req命令, 則需要修改req相關的節點, 修改方法一摸一樣的
使用openssl生成證書
- cmd切換到我們剛才的新建資料夾, 執行命令
#openssl req -new -x509 -days 有效期(天) -keyout 金鑰位置 -out 證書位置 -config 使用哪個配置檔案(使用我們剛才修改過的openssl.cnf) openssl req -new -x509 -days 3650 -keyout ca.key -out ca.crt -config openssl.cnf
- 命令要填入各種密碼, 需要記錄下來, 並且省份,城市等, 最重要的是Common Name填入你網站的Ip或者域名, 並且上面的alt_names也要配置你的Ip或者域名
- ca.crt生成出來之後可以雙擊, 開啟之後檢視詳細資訊, 若能看到"使用者可選名稱", 則表示正常
- 繼續執行命令生成pfx檔案, 後面給IIS使用
#openssl pkcs12 -export -inkey 金鑰 -in 證書 -out pfx檔案位置
openssl pkcs12 -export -inkey ca.key -in ca.crt -out ca.pfx
給IIS配置證書
- 將上一步生成的ca.crt和ca.pfx拷貝到伺服器上
- 開啟IIS, 點選計算機名稱, 雙擊中間的伺服器證書
- 點選右側的匯入按鈕, , 選擇剛才的pfx檔案, 並輸入密碼
- 切換到對應的站點, 點選最右側"繫結", 然後選擇https, 繫結剛才的證書
- 這樣就伺服器就配置好了
配置客戶端
- 這時瀏覽器訪問站點應該會有一個錯誤, 提示"此站點缺少有效的受信任證書"
- F12-安全-檢視證書-詳細資訊-複製到檔案, 選擇一個儲存位置, 然後雙擊安裝, 重啟瀏覽器即可