Tomcat7配置globalsign購買的證書

**html

 自簽證書和商業CA證書最大的區別,沒有根證書,這個根證書沒植入各大瀏覽器和各個移動平臺。 因此不少瀏覽器訪問https時就會報不可信任站點, 也就沒有創建加密通道,不能很好的保護信息的安全

一,使用globalsign購買的證書java

準備如下證書申請文件提交給globalsign:web

KeyStore.jks算法

mydomain.csrapache

globalsign將證書用email頒發給客戶:api

wms.cmbi.com.hk.pem,其實就是服務器證書,將其複製後爲server.cer,裏面內容如:瀏覽器

-----BEGIN CERTIFICATE----- tomcat

-----END CERTIFICATE----- 安全

 ovroot.cer,中級證書(開始一直缺乏這個文件,致使配置出錯,諮詢globalsign後他們提供了,也是-----BEGIN CERTIFICATE-----。。。)服務器

1,生成keystore.jks

D:\ssl>keytool -genkey -alias wms.cmbi.com.hk -keyalg RSA -keystore KeyStore.
 -keysize 2048
輸入keystore密碼:123
再次輸入新密碼: 123
您的名字與姓氏是什麼?
  [Unknown]:  CMBI
您的組織單位名稱是什麼?
  [Unknown]:  CMBI
您的組織名稱是什麼?
  [Unknown]:  CMB International Capital Holdings Corporation Limited
您所在的城市或區域名稱是什麼?
  [Unknown]:  Hong Kong
您所在的州或省份名稱是什麼?
  [Unknown]:  Hong Kong
該單位的兩字母國家代碼是什麼
  [Unknown]:  HK
CN=CMBI, OU=CMBI, O=CMB International Capital Holdings Corporation Limited, L
ng Kong, ST=Hong Kong, C=HK 正確嗎?
  [否]:  Y
CN=CMBI, OU=CMBI, O=CMB International Capital Holdings Corporation Limited, L
ng Kong, ST=Hong Kong, C=HK 正確嗎?
  [否]:  Y

2,根據keystore文件生成csr文件

D:\ssl>keytool -certreq -alias wms.cmbi.com.hk -keystore KeyStore.jks -file m
main.csr
輸入keystore密碼:123

 3,先備份下KeyStore.jks文件,而後開始導入中級證書ovroot.cer到KeyStore.jks中,(注意,此處的alias就是evroot,密碼我是與jks文件同樣的,即123)

C:\Users\Joyluo\Desktop\global>keytool -import -trustcacerts -keystore KeyStore.
jks -alias evroot -file ovroot.cer
輸入密鑰庫口令:
證書已添加到密鑰庫中

4,將服務器證書server.cer導入到KeyStore.jks中,此處alias應該與jks生成時的一致;

C:\Users\Joyluo\Desktop\global>keytool -import -trustcacerts -keystore KeyStore.
jks -alias wms.cmbi.com.hk -file server.cer
輸入密鑰庫口令:
證書回覆已安裝在密鑰庫中

完成上述後,KeyStore.jks已經包含了globalsign頒發的證書的信息,只要將這個jks文件拷貝到tomcat的config文件下便可;

5,配置tomcat7的server.xml

<!-- Define a SSL Coyote HTTP/1.1 Connector on port 443 -->
<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="${tomcat}/config/KeyStore.jks" keystorePass="123"
           clientAuth="false" sslProtocol="TLS"/>

6,此時https能夠訪問,可是http仍是能夠訪問,須要將http跳轉到https;

tomcat/config/server.xml,重定向到443端口;

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />

tomcat/config/web.xml,在文件末尾加上

<welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    
    <login-config>  
        <!-- Authorization setting for SSL -->  
        <auth-method>CLIENT-CERT</auth-method>  
        <realm-name>Client Cert Users-only Area</realm-name>  
    </login-config>  
    <security-constraint>  
        <!-- Authorization setting for SSL -->  
        <web-resource-collection >  
            <web-resource-name >SSL</web-resource-name>  
            <url-pattern>/*</url-pattern>  
        </web-resource-collection>  
        <user-data-constraint>  
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>  
        </user-data-constraint>  
    </security-constraint>

</web-app>

 總結:將購買的證書信息添加到jks文件中,之後要遷移服務器,直接拷貝這個jks文件便可;

新版本的Chrome和firefox可能會出現弱密鑰問題,解決方法:

 tomcat/server.xml中,443connector 加上

sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
           ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
           TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, 
           TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,
           TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,
           TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"

重啓tomcat便可;

完成;

以前的各類嘗試

C:\Users\Joyluo\Desktop>keytool -import -alias wms -file wms.cmbi.com.hk.cer -noprompt -trustcacerts -storetype jks -keystore cacerts -storepass changeit
證書已添加到密鑰庫中

二,使用keytool本身生成的證書

1,生成wms文件

C:\Users\Joyluo>keytool -genkey -alias wms -keyalg RSA -keystore d:/wms
輸入密鑰庫口令:
密鑰庫口令過短 - 至少必須爲 6 個字符
輸入密鑰庫口令:
再次輸入新口令:
您的名字與姓氏是什麼?
  [Unknown]:  wms.cmbi.com.hk
您的組織單位名稱是什麼?
  [Unknown]:  softbi.com
您的組織名稱是什麼?
  [Unknown]:  softbi
您所在的城市或區域名稱是什麼?
  [Unknown]:  shenzhen
您所在的省/市/自治區名稱是什麼?
  [Unknown]:  guangdong
該單位的雙字母國家/地區代碼是什麼?
  [Unknown]:  ZH
CN=wms.cmbi.com.hk, OU=softbi.com, O=softbi, L=shenzhen, ST=guangdong, C=ZH是否
正確?
  [否]:  y

輸入 <wms> 的密鑰口令
        (若是和密鑰庫口令相同, 按回車):
再次輸入新口令:

2,將wms文件的信息導入到wms.crt文件,會自動生成crt文件;

C:\Users\Joyluo>keytool -export -file d:/wms.crt -alias wms -keystore d:/wms
輸入密鑰庫口令:
存儲在文件 <d:/wms.crt> 中的證書

3,將crt文件的信息導入到cacerts文件中,開始用原來的密鑰出錯,改成了changeit,就能夠了;

C:\Users\Joyluo>keytool -import -keystore D:\worktools\Java7\jre7\lib\security\c
acerts -file d:/wms.crt
輸入密鑰庫口令:
keytool 錯誤: java.io.IOException: Keystore was tampered with, or password was i
ncorrect


C:\Users\Joyluo>keytool -import -keystore D:\worktools\Java7\jre7\lib\security\c acerts -file d:/wms.crt 輸入密鑰庫口令: 全部者: CN=wms.cmbi.com.hk, OU=softbi.com, O=softbi, L=shenzhen, ST=guangdong, C =ZH 發佈者: CN=wms.cmbi.com.hk, OU=softbi.com, O=softbi, L=shenzhen, ST=guangdong, C =ZH 序列號: 6244aa0 有效期開始日期: Fri Oct 09 10:38:36 CST 2015, 截止日期: Thu Jan 07 10:38:36 CST 2016 證書指紋: MD5: A6:68:E6:4F:EF:89:85:B3:79:05:9F:80:12:79:78:A5 SHA1: 2D:D8:02:8F:E1:59:6F:31:4F:D0:45:B2:8E:78:AD:C5:39:0D:14:F1 SHA256: FE:71:BC:26:E2:63:F3:EA:1A:17:02:C0:2D:C1:00:6A:E4:DC:5A:86:DC: 5B:07:90:50:4B:44:CB:DC:61:A4:4A 簽名算法名稱: SHA256withRSA 版本: 3 擴展: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: E7 1F A4 36 15 37 DE CE 0D BD 3E 98 FD E8 1F 86 ...6.7....>..... 0010: 0A 03 07 FB .... ] ] 是否信任此證書? [否]: y 證書已添加到密鑰庫中

4,配置tomcat/config/server.xml;

<Connector port="8080" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="d:\wms" keystorePass="mmmm123"
               />

https訪問

點擊繼續瀏覽後,;

完成

********************

 之後更新時,先刪除原來的證書,而後導入新的證書 

keytool -list -keystore cacerts 
              keytool -delete -alias akazam_email -keystore cacerts 
              keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts -trustcacerts

 

**

相關文章
相關標籤/搜索