<style> .red { color: red; } </style> # Glassfish 搭配let's encrypt及安裝ssl憑證 ###### tags: `CAS`, `Glassfish Server SSL Setting`, `keytool` ## 前言: 此前由於是自行產生簽證,在實務面上是不可能通過安全性檢驗,因此此篇會記錄如何使用let's encrypt產生憑證後,該如何安裝到glassfish上! ## 大致流程: * 先到let's encrypt申請憑證,申請過程請參考其他網路教學,當申請通過之後,應該會拿到三個檔案,分別為: ca_bundle.crt(根憑證,也叫CA)、certificate.crt(CA full path憑證)、private.key(私鑰) * 將這三樣透過openssl轉化為pkcs12檔 * 將pkcs12檔轉換成jks檔 * 將最後的jks檔匯入glassfish預設的keystore.jks檔案內 * 設定glassfish domain.xml * 重新啟動server #### 1. 將第三方型的憑證轉化為pkcs12檔 ``` openssl pkcs12 -export -out glassfish_apis_syscom.p12 -inkey private.key -in certificate.crt -certfile ca_bundle.crt -passout pass:changeit -name glassfish_apis_syscom ``` * <span class="red">重點提醒:</span> 這邊的-name很重要,因為glassfish配置會需要簽證的alias,因此這邊一定要給。此外,<span class="red">由於glassfish的簽證密碼一定要和他master password完全一致,如果不想修改glassfish的master password,這邊簽證的密碼請務必設定成"changeit"。</span> #### 2. 將pkcs12檔轉換成jks檔 ``` keytool -importkeystore -srckeystore glassfish_apis_syscom.p12 -srcstoretype pkcs12 -srcstorepass changeit -dest storetype jks -destkeystore glassfish_apis_syscom.keystore -alias glassfish_apis_syscom ``` * <span class="red">重點提醒:</span> 這邊的-alias需和上方的-name參數設定的一致,並且設定密碼也為changeit #### 3. 將jks檔匯入glassfish預設的keystore.jks ``` keytool -importkeystore -srckeystore glassfish_apis_syscom.keystore -destkeystore keystore.jks ``` #### 4. 設定glassfish domain.xml * 請到`glassfish安裝路徑/glassfish/domains/domain1/config/domain.xml` * 若是有自行新增domain,則請至該對應的domain,domain1是glassfish預設的domain * 接著找到server-config底下的network-config,原本的http-listener-1是預設給http通道用的,http-listener-2是給https用的,但因目前網頁環境用的都是聽http-listener-1的80 port。因此,我們<span class="red">需要調整的是http-listener-1,而不是http-listener-2</span>,並且加上`<ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="glassfish_apis_syscom"></ssl>`,<span class="red">這邊的nickname鑰跟前面步驟產生憑證的alias一致!</span> * <span class="red">重點提醒:</span> 若是透過4848 port進去的admin管理頁面想去變更http-listener-1讓他啟動security,但因為會少了`<ssl></ssl>`tag的關係,想切到ssl的頁面去變更certificate alias並儲存時會一直產生error,因此請直接修改domain.xml!  #### 5. 最後請重新啟動glassfish讓他生效 請到`glassfish安裝路徑/glassfish4.1.2/glassfish/bin/`,並且輸入以下指令: ```shell= sh stopserv sh asadmin start-domain ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up