<style> .red { color: red; } </style> # Glassfish ssl及自建domain設定 ###### tags: `CAS`, `Glassfish Server SSL Setting`, `keytool` ## 前言: 由於自簽憑證需要跟網站域名相同,glassfish預設域名是domain1,若想要建立自己的domain就需要透過指令新建立才有辦法達成,以下將以sso.client1.com域名為例。 需使用檔案: 在svn ## 大致流程: * 先自己簽發ssl所需要的證書 * 建立domain及設定 * 將憑證匯入到glassfish的cacert證書庫裡面 * deploy web project到glassfish ## 產生私鑰及簽發ssl憑證: 可透過keytool自簽憑證,<span class="red">憑證的dn必須跟網站域名設定一致,非常重要!!</span> ## 建立domain及設定 1. 打開cmd後先到`glassfish安裝位置\bin`底下,執行asadmin ![](https://i.imgur.com/4IaFFFL.png) 2. 接著執行`create-domain sso.client1.com`(若新建立的domain不想和預設的domain1搶port占位子,可先啟動domain1再建立,建立過程就會自動挑選隨機的port),建立admin帳號密碼後即完成 ## 將證書和私鑰匯入到glassfish的cacert及keystore庫裡面: 1. 簽發完畢之後,須將xxx.crt及xxx.keystore匯入到glassfish server裡面,位子會放在`glassfish安裝位置\domains\config`裡面。 例: keytool -import -alias xxx -file xxx.crt -keystore cacerts.jks(匯入憑證) 例: keytool -importkeystore -srckeystore xxx.keystore -destkeystore keystore.jks(匯入私鑰) 2. glassfish裡cacerts.jks和keystore.jks密碼預設都為changeit,<span class="red">注意: 匯入前需確認自簽憑證漢密鑰的密碼需要和cacerts.jks及keystore密碼相同,還需要跟當前domain的master password相同,才有辦法順利啟用ssl!!</span> 3. 若想更改domain master password,一樣到`bin`的路徑底下,進入`asadmin`後,輸入`change-master-password domain_name`即可變更 4. 如果有使用netbeans開發,在netbeans內部建立的glassfish server啟用ssl預設密碼都是changeit,如果有更改過domain的master password,啟動時會顯示密碼錯誤,此時如果證書和憑證都已經匯入成功,可以將master password改回changeit,這樣netbeans的server即可正常啟動的。