創(chuàng)建自簽名證書
首先,創(chuàng)建一個私鑰文件:
openssl genrsa -out myselfsigned.key 2048
然后利用私鑰創(chuàng)建自簽名證書:
openssl req -new -x509 -key myselfsigned.key -out myselfsigned.cer -days 36500
執(zhí)行上面的兩個操作之后會提示輸入以下幾個內(nèi)容(為了顯示正常盡量使用英文):
- Country Name (2 letter code) [AU]:CN //國家簡稱
- State or Province Name (full name) [Some-State]:GuangDong //州或省的名字
- Locality Name (eg, city) []:ShenZhen //區(qū)或市縣的名稱
- Organization Name (eg, company) [Internet Widgits Pty Ltd]:Comapny //公司或組織名
- Organizational Unit Name (eg, section) []:Mobile //單位或者是部門名稱
- Common Name (e.g. server FQDN or YOUR name) []:xxxxxx //域名或服務器名或IP
- Email Address []:xxxxx@gmail.com //Email地址
注, 上述可直接在命令中用-subj跟在語句后面, 如:
openssl req -new -x509 -key myselfsigned.key -out myselfsigned.cer -days 36500 -subj /CN=域名或服務器名或IP
至此, 生成的myselfsigned.cer分別應用到服務器端以及客戶端(通過郵件, 鏈接等方式下發(fā)), 即可使用, 配置IIS見下文
創(chuàng)建自己的證書頒發(fā)機構(gòu)(CA)
即使是測試目的, 也會出現(xiàn)有多個站點需要自定義證書的情況, 不可能要求用戶每個站點裝一個 我們何不把自己添加成一個證書頒發(fā)機構(gòu)(CA), 然后把這個證書裝給客戶端, 那么由這個CA頒發(fā)的證書都會被自動信任.
首先, 用同樣的語法創(chuàng)建一個證書, 我們把名字取明確一些, 就叫myCA吧(跟第一步生成普通證書是一樣一樣的, 只是這次我們把它理解成一個證書頒發(fā)機構(gòu))
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=域名
注:
- 一旦域名配置了, 用不同于這個域名的主機名來請求, 就會校驗失敗
- 這里用到了上面說的-subj參數(shù)
最后, 通過服務器證書(我們理解的CA), 對這個簽發(fā)請求進行簽發(fā)
openssl x509 -req -in server.req -out server.cer -CAkey myCA.key -CA myCA.cer -days 36500 -CAcreateserial -CAserial serial
配置IIS
我們的使用場景是IIS伺服了一個靜態(tài)文件服務器(沒錯, 是用來放iOS企業(yè)部署的的plist和ipa文件的), 做到如下幾步
轉(zhuǎn)化證書格式
IIS導入證書需要轉(zhuǎn)化為pkcs12格式(X509格式?), 中間會詢問一次密碼, 牢記, 或者與導出的文件一起保存
openssl pkcs12 -export -clcerts -in server.cer -inkey server.key -out iis.pfx
現(xiàn)在總結(jié)一下, 目前為止, 除去key和car, 生成了myCA.cer, server.cer 和iis.pfx三個文件
將myCA.cer添加為”受信任的根證書頒發(fā)機構(gòu)”
打開IE > 工具 > Internet選項 > 內(nèi)容 > 證書 > 受信任的根證書頒發(fā)機構(gòu) > 導入 > 選擇iis.pfx > 輸入密碼 > 導入
添加服務器證書
這需要兩個步驟
首先, 在IIS管理器(inetmgr)的根目錄上(就是機器名), 選擇”服務器證書”, 導入我們剛才用server.cer生成的iis.pfx, 即給IIS添加了一個證書(如果有多個, 重復以上步驟)
然后, 找到網(wǎng)站節(jié)點, 右鍵, “編輯綁定”, 添加一個供https訪問的端口(默認是443), 此時會要求你選擇一個證書, 把剛才通過管理器添加的證書名選出來, 即可.
最后, 把server.cer通用你們企業(yè)自己的方式頒發(fā)給需要使用的客戶端(郵件, 鏈接等, 均可), 如果是iPhone, 點擊了server.cer文件后, 會導航到設置里面安裝, 安裝并信任后, 在設置 > 通用 > Profiles里面可以看到你信任的證書使用openssl創(chuàng)建自簽名證書及部署到IIS教程