本文講解三個部分:
1. 建立自簽名證書
2. 建立本身的證書頒發機構
3. 以及如何配置IIShtml
首先,建立一個私鑰文件:git
openssl genrsa -out myselfsigned.key 2048
而後利用私鑰建立自簽名證書:服務器
openssl req -new -x509 -key myselfsigned.key -out myselfsigned.cer -days 36500
執行上面的兩個操做以後會提示輸入如下幾個內容(爲了顯示正常儘可能使用英文):工具
注, 上述可直接在命令中用
-subj
跟在語句後面, 如:
openssl req -new -x509 -key myselfsigned.key -out myselfsigned.cer -days 36500 -subj /CN=域名或服務器名或IP測試
至此, 生成的myselfsigned.cer分別應用到服務器端以及客戶端(經過郵件, 連接等方式下發), 便可使用, 配置IIS見下文網站
即便是測試目的, 也會出現有多個站點須要自定義證書的狀況, 不可能要求用戶每一個站點裝一個 咱們何不把本身添加成一個證書頒發機構(CA), 而後把這個證書裝給客戶端, 那麼由這個CA頒發的證書都會被自動信任. code
首先, 用一樣的語法建立一個證書, 咱們把名字取明確一些, 就叫myCA
吧(跟第一步生成普通證書是同樣同樣的, 只是此次咱們把它理解成一個證書頒發機構)server
openssl genrsa -out myCA.key 2048 openssl req -new -x509 -key myCA.key -out myCA.cer -days 36500
而後, 基於這個證書生成一個證書請求(CSR
), (一樣, 先生成一個key, 要用key來請求)htm
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伺服了一個靜態文件服務器(沒錯, 是用來放iOS企業部署的的plist和ipa文件的), 作到以下幾步
IIS導入證書須要轉化爲pkcs12格式(X509格式?), 中間會詢問一次密碼, 牢記, 或者與導出的文件一塊兒保存
openssl pkcs12 -export -clcerts -in server.cer -inkey server.key -out iis.pfx
如今總結一下, 目前爲止, 除去key和csr, 生成了myCA.cer
, server.cer
和iis.pfx
三個文件
打開IE > 工具 > Internet選項 > 內容 > 證書 > 受信任的根證書頒發機構 > 導入 > 選擇iis.pfx > 輸入密碼 > 導入
這須要兩個步驟
首先, 在IIS管理器(inetmgr)的根目錄上(就是機器名), 選擇」服務器證書」, 導入咱們剛纔用server.cer
生成的iis.pfx
, 即給IIS添加了一個證書(若是有多個, 重複以上步驟)
而後, 找到網站節點, 右鍵, 「編輯綁定」, 添加一個供https訪問的端口(默認是443), 此時會要求你選擇一個證書, 把剛纔經過管理器添加的證書名選出來, 便可.
最後, 把server.cer
通用大家企業本身的方式頒發給須要使用的客戶端(郵件, 連接等, 都可), 若是是iPhone, 點擊了server.cer文件後, 會導航到設置裏面安裝, 安裝並信任後, 在設置 > 通用 > Profiles裏面能夠看到你信任的證書使用openssl建立自簽名證書及部署到IIS教程