1. 程式人生 > 其它 >使用openssl自簽證書到IIS並在區域網內訪問

使用openssl自簽證書到IIS並在區域網內訪問

下載安裝openssl

  1. 下載地址, 進行安裝
  2. 設定環境變數
  3. 使用命令openssl version驗證是否安裝成功:

設定openssl.cnf

  1. 新建一個資料夾, 將D:\Program Files\OpenSSL-Win64\bin\cnf\openssl.cnf拷貝一份出來, 後面需要進行修改, 並且根據這個配置生成證書, 例如我拷貝到了
  2. 編輯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
  1. 如上面的openssl.cnf所示, 就是加入了可選域名和可選ip, 後面會避免瀏覽器報出"Subject Alternative Name missing(沒有可選名稱)"的錯誤
  2. 我們使用的x509命令生成證書, 所以只修改了x509節點. 如果是使用req命令, 則需要修改req相關的節點, 修改方法一摸一樣的

使用openssl生成證書

  1. 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
  1. 命令要填入各種密碼, 需要記錄下來, 並且省份,城市等, 最重要的是Common Name填入你網站的Ip或者域名, 並且上面的alt_names也要配置你的Ip或者域名
  2. ca.crt生成出來之後可以雙擊, 開啟之後檢視詳細資訊, 若能看到"使用者可選名稱", 則表示正常
  3. 繼續執行命令生成pfx檔案, 後面給IIS使用
#openssl pkcs12 -export -inkey 金鑰 -in 證書 -out pfx檔案位置
openssl  pkcs12 -export -inkey ca.key -in ca.crt -out ca.pfx

給IIS配置證書

  1. 將上一步生成的ca.crt和ca.pfx拷貝到伺服器上
  2. 開啟IIS, 點選計算機名稱, 雙擊中間的伺服器證書
  3. 點選右側的匯入按鈕, , 選擇剛才的pfx檔案, 並輸入密碼
  4. 切換到對應的站點, 點選最右側"繫結", 然後選擇https, 繫結剛才的證書
  5. 這樣就伺服器就配置好了

配置客戶端

  1. 這時瀏覽器訪問站點應該會有一個錯誤, 提示"此站點缺少有效的受信任證書"
  2. F12-安全-檢視證書-詳細資訊-複製到檔案, 選擇一個儲存位置, 然後雙擊安裝, 重啟瀏覽器即可