使用openssl創建自簽名證書及部署到IIS教程


概要

本文講解三個部分:
1. 創建自簽名證書
2. 創建自己的證書頒發機構
3. 以及如何配置IIS

 

創建自簽名證書

首先,創建一個私鑰文件:

openssl genrsa -out myselfsigned.key 2048

然后利用私鑰創建自簽名證書:

openssl req -new -x509 -key myselfsigned.key -out myselfsigned.cer -days 36500

執行上面的兩個操作之后會提示輸入以下幾個內容(為了顯示正常盡量使用英文):

  1. Country Name (2 letter code) [AU]:CN //國家簡稱
  2. State or Province Name (full name) [Some-State]:GuangDong //州或省的名字
  3. Locality Name (eg, city) []:ShenZhen //區或市縣的名稱
  4. Organization Name (eg, company) [Internet Widgits Pty Ltd]:Comapny //公司或組織名
  5. Organizational Unit Name (eg, section) []:Mobile //單位或者是部門名稱
  6. Common Name (e.g. server FQDN or YOUR name) []:xxxxxx //域名或服務器名或IP
  7. Email Address []:xxxxx@gmail.com //Email地址

注, 上述可直接在命令中用-subj跟在語句后面, 如:
openssl req -new -x509 -key myselfsigned.key -out myselfsigned.cer -days 36500 -subj /CN=域名或服務器名或IP

至此, 生成的myselfsigned.cer分別應用到服務器端以及客戶端(通過郵件, 鏈接等方式下發), 即可使用, 配置IIS見下文

 

創建自己的證書頒發機構(CA)

即使是測試目的, 也會出現有多個站點需要自定義證書的情況, 不可能要求用戶每個站點裝一個 我們何不把自己添加成一個證書頒發機構(CA), 然后把這個證書裝給客戶端, 那么由這個CA頒發的證書都會被自動信任. 

首先, 用同樣的語法創建一個證書, 我們把名字取明確一些, 就叫myCA吧(跟第一步生成普通證書是一樣一樣的, 只是這次我們把它理解成一個證書頒發機構)

openssl genrsa -out myCA.key 2048
openssl req -new -x509 -key myCA.key -out myCA.cer -days 36500

然后, 基於這個證書生成一個證書請求(CSR), (同樣, 先生成一個key, 要用key來請求)

openssl genrsa -out server.key 2048
openssl req -new -out server.req -key server.key -subj /CN=域名

注:
1. 一旦域名配置了, 用不同於這個域名的主機名來請求, 就會校驗失敗
2. 這里用到了上面說的-subj參數

最后, 通過服務器證書(我們理解的CA), 對這個簽發請求進行簽發

openssl x509 -req -in server.req -out server.cer -CAkey myCA.key -CA myCA.cer -days 36500 -CAcreateserial -CAserial serial

 

配置IIS

我們的使用場景是IIS伺服了一個靜態文件服務器(沒錯, 是用來放iOS企業部署的的plist和ipa文件的), 做到如下幾步

轉化證書格式

IIS導入證書需要轉化為pkcs12格式(X509格式?), 中間會詢問一次密碼, 牢記, 或者與導出的文件一起保存

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

現在總結一下, 目前為止, 除去key和csr, 生成了myCA.cerserver.cer 和iis.pfx三個文件 

將myCA.cer添加為”受信任的根證書頒發機構”

打開IE > 工具 > Internet選項 > 內容 > 證書 > 受信任的根證書頒發機構 > 導入 > 選擇iis.pfx > 輸入密碼 > 導入

添加服務器證書

這需要兩個步驟

首先, 在IIS管理器(inetmgr)的根目錄上(就是機器名), 選擇”服務器證書”, 導入我們剛才用server.cer生成的iis.pfx, 即給IIS添加了一個證書(如果有多個, 重復以上步驟)

然后, 找到網站節點, 右鍵, “編輯綁定”, 添加一個供https訪問的端口(默認是443), 此時會要求你選擇一個證書, 把剛才通過管理器添加的證書名選出來, 即可.

最后, 把server.cer通用你們企業自己的方式頒發給需要使用的客戶端(郵件, 鏈接等, 均可), 如果是iPhone, 點擊了server.cer文件后, 會導航到設置里面安裝, 安裝並信任后, 在設置 > 通用 > Profiles里面可以看到你信任的證書使用openssl創建自簽名證書及部署到IIS教程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM