如果拿到的憑證是轉好的 .jks
檔案,這時候因為方便整理的關係我將這個.jks
檔案放到 conf 底下,然後只需要到 Tomcat 目錄下的 conf / server.xml 去做修改就好。
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="conf/gss.jks" keystorePass="******"
clientAuth="false" SSLEngine="on" />
如果都沒改過的話,這段原本應該是註解起來的。然後加上 keystoreFile 跟 keystorePass,就設定好了,重新啟動 Tomcat 就可以用 https 連上網站了
如果拿到的憑證是 .crt
檔跟.key
檔,這時候就比較麻煩了,需要自己去做加密,我這邊會介紹.p12
跟.jks
,雖然有些許設定上的不同,但其實加密成.p12
或是.jks
都可以在 Tomcat 執行。
.p12 檔
首先要先下載 OpenSSL 這邊提供 Windows 下載的版本,跟安裝教學如下:
- OpenSSL For Windows 載點 : http://gnuwin32.sourceforge.net/packages/openssl.htm
- OnenSSL 安裝教學 : https://www.sslbuyer.com/index.php?option=com_content&view=article&id=128:install-openssl-win7&catid=25:knowledge-news&Itemid=2595
下載並設定好之後就可以 OpenSSL 的指令了,首先將 .crt
檔跟.key
檔用命令提示字元轉成.p12
語法如下:
openssl pkcs12 -export -in All.cer -inkey openservices.aopen.com.01.key -out openservices.aopen.co-v1.p12
就成功加密出 .p12
檔案了,這時候可以直接上 Tomcat 設定了,設定如下。
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="conf/gss.p12" keystorePass="******" keystoreType="pkcs12"
clientAuth="false" SSLEngine="on" />
這邊需要注意的點除了 keystoreFile 跟 keystorePass 還多了 keystoreType=”pkcs12″ 要去做設定,然後重啟 Tomcat 就成功囉。
.jks 檔
如果不想在 Tomcat 多做設定的話,可以再把 .p12
轉成 .jks
,這時候就要透過 Java KeyTool 工具。
首先需要下載 Java SDK 下載完成後,需要再 Java 底下的 Bin 才能執行 KeyTool ,語法如下 :
/usr/bin/keytool -importkeystore -srckeystore openservices.aopen.com.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore openservices-201607-201907-v2.keystore
就能夠轉出 .jks
囉,Tomcat 的設定就如最上面那樣既可。
總結
其實.p12
跟.jks
都能在 Tomcat 下執行,但.p12
需要做型態設定 Tomcat 才能順利的去讀取,.jks
則需要.p12
再用 Java KeyTool 去轉,這邊就看個人取捨了。
這邊也提供將.jks
轉回 .crt
跟.key
的方法
名詞解釋
- .key格式:密鑰文
- .crt格式:證書文件,包含公鑰提供者信息,但不包含公鑰
- .jks格式 :定義了包含私鑰與公鑰證書的文件格式,是 Java 默認的格式
- .p12 又稱PKCS12:定義了包含私鑰與公鑰證書的文件格式,其中私鑰採密碼保護
- PKCS(Public Key Cryptography Standards)是由RSA公司制定的一組關於公鑰加密的標準