通常,在創建HTTPS的服務器的時候都需要一個網站的SSL證書文件,但是在網上找到的文檔基本上都是在介紹怎麼自己用keytools創建一個證書,但是這種方法申請的證書根本不會被廣大網民的瀏覽器認證,所以想要創建一個大家都能訪問的HTTPS服務,則從一個受信任的機構去申請一個證書。
而從認證網站上下載的證書中並不會包括TOMCAT可以使用的jks證書文件,那麼必須要先將證書轉換爲TOMCAT可以使用的格式。
一般來說,我們拿到的證書文件如下:(temp是文件名同樣也是我們以下示例中的證書名)
1. temp.crt(自己網站的證書文件)
2. temp.key (可選,私鑰,可以自己通過crt生成)
3. root.crt(可選,證書認證機構自己的根證書)
第一步:
合併證書,生成temp.p12文件
命令行輸入:
openssl pkcs12 -export -in temp.crt -inkey temp.key -out temp.p12 -name temp
此時會提示你創建自己的密鑰和重複輸入,這個密碼請記住,下面我們還會使用
第二步:
生成 keystore 文件(jks) 需要輸入上一步的導出密碼,及指定新的 keystore 密碼 後面幾步的導入需要用到這個密碼。
<pre name="code" class="plain">keytool -importkeystore -srckeystore temp.p12 -srcstoretype PKCS12 -destkeystore temp.jks
此時會提示你輸入第一步的密碼,並且輸入新的 keystore 密碼
第三步 (可選):
生成公鑰
<pre name="code" class="plain">openssl rsa -in temp.key -out temp_public.key
第四步(可選) :
合併頒發機構的根證書(即添加信任)
alias:信任的證書的描述
ca.crt:要添加的信任證書 同樣可以是pem等格式
<pre name="code" class="plain">keytool -keystore temp.jks -import -trustcacerts -alias alias -file ca.crt
附錄:
TOMCAT配置:
/data/app/test/temp.jks:你證書文件
123456:你的證書密碼
<Connector port="8080" protocol="HTTP/1.1"
SSLEnabled="true" maxThreads="25" scheme="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="/data/app/test/temp.jks" keystorePass="123456" />