說明
此篇以 Windows 應用程式 Citrix XenApp 為例,由於 XenApp 使用 Windows IIS 作為網站伺服器,現要啟用 SSL 機制,必須建立相關的憑證檔。
既然是 Windows 應用程式,怎不用內建的 Certificate Service 來建立及發行相關憑證就好?
沒錯,Windows 的憑證授權單位就能滿足這個需求,只是 Server 憑證在簽署時,只能有一年有效期,也就是 IIS 網站所使用的 Server 憑證,在一年後就必須作更換。如果 Server 憑證改由 Linux 來簽署,就可以設定憑證的有效期限為更長的時間。
事前的必要條件
- Linux CA 已完成簽署前的所有設定
- IIS 網站設定已完成
步驟開始
- 從 IIS 主機新增一個 Server 憑證簽署要求檔(CSR),將此檔傳給 Linux CA 主機
- 從 Linux CA 主機簽署這個 CSR 檔,產生一個 Server 憑證檔(xxx.crt),將此檔以及 CARoot 憑證檔傳回 IIS 主機
- 從 IIS 主機匯入簽署成功的憑證檔(xxx.crt)
- 從 IIS 主機安裝 CARoot 憑證檔至受信任的根憑證授權單位
- 從 IIS 主機執行一次 Secure Gateway Configuration Wizard,否則 XenApp 不會套用新的憑證
在 IIS 主機,新增 CSR 檔
IIS 管理員 > 網站 > 預設網站 > 內容 > 目錄安全設定
- 如果檢視憑證不是顯是灰色,表示 IIS 已經設定了憑證,如果要繼續,必須先移除舊憑證
- 移除舊憑證
伺服器憑證 > 下一步 > 移除憑證目前的憑證 - 新增一個憑證簽署要求檔(CSR)
伺服器憑證 > 下一步 > 建立新憑證 > 準備要求並稍後傳送 >
- 名稱: Citrix-XenApp <隨便的名稱>
- 公司、單位 <必須與 Linux 的 CARoot 憑證相同>
- 一般名稱 <輸入網站的 FQDN>
- 國家、省、城市位置 <必須與 Linux 的 CARoot 憑證相同>
> 輸入檔案名稱 xxx.csr
將此檔傳到 Linux CA 主機
在 Linux CA 主機,簽署憑證檔
簽署指令
openssl ca -config openssl.my.cnf -in this-is-my-host_SERVER.csr -out certs/this-is-my-host_SERVER.crt
將 Server 憑證檔 xxx.crt 以及 CARoot 憑證檔傳回 IIS 主機
在 IIS 主機,匯入Server 憑證檔以及安裝 CARoot 憑證檔
匯入 Server 憑證)
- 將檔名 xxx.crt 改成 xxx.cer
- IIS 管理員 > 網站 > 預設網站 > 內容 > 目錄安全設定 > 伺服器憑證 > 下一步 > 處裡擱置要求及安裝憑證 > 選擇 xxx.cer
- 檢視憑證 > 應該會看到警告符號,繼續下一步
安裝 CARoot 憑證
- 直接執行 CARoot 的憑證檔,將它安裝在受信任的根憑證授權單位
- 回到 IIS 裡 檢視憑證,原來的警告符號已經消失
在 IIS(XenApp) 主機,執行一次 Secure Gateway Configuration Wizard
執行過程中,要選擇新的憑證檔,其餘不用變更。