使用openssl創(chuàng)建自簽名證書及部署到IIS教程

創(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)容(為了顯示正常盡量使用英文):

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

注:

  1. 一旦域名配置了, 用不同于這個域名的主機名來請求, 就會校驗失敗
  2. 這里用到了上面說的-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é)一下, 目前為止, 除去keycar, 生成了myCA.cer, server.ceriis.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教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容