1. 程式人生 > >apache-tomcat 8.5 SSL證書佈置及強制https

apache-tomcat 8.5 SSL證書佈置及強制https

一、使用jdk自帶的工具生成數字證書,如下:

先進入tomcat conf目錄下,建立一個資料夾key

然後,

keytool -genkey -v -alias tomcat -keyalg RSA -keystore C:\apache-tomcat-8.5.31\conf\key\tomcat.keystore -validity 36500

 keytool.exe 命令位於Java\jdk1.8.0_77\bin的目錄下,如果沒有配置Jdk的環境變數,就要進入目錄再使用。

在linux伺服器上keytool命令同樣可用:

[[email protected]
conf]# keytool -genkey -v -alias tomcat -keyalg RSA -keystore /usr/local/apache-tomcat-8.5.31/conf/key/tomcat.keystore -validity 36500

 

命令引數部分解釋:

C:\apache-tomcat-8.5.31\conf\key\tomcat.keystore :表示數字證書生成後的檔案路徑

36500 :表示有效時間,36500天,預設90天
 

 
  1. 輸入金鑰庫口令:

  2. 再次輸入新口令:

  3. 您的名字與姓氏是什麼?

  4. [Unknown]: jizhi # 或者此處寫域名eg: localhost

  5. 您的組織單位名稱是什麼?

  6. [Unknown]: spark

  7. 您的組織名稱是什麼?

  8. [Unknown]: spark

  9. 您所在的城市或區域名稱是什麼?

  10. [Unknown]: beijing

  11. 您所在的省/市/自治區名稱是什麼?

  12. [Unknown]:

  13. 該單位的雙字母國家/地區程式碼是什麼?

  14. [Unknown]:

  15. CN=jizhi, OU=spark, O=spark, L=beijing, ST=Unknown, C=Unknown是否正確?

  16. [否]: y

  17.  
  18. 正在為以下物件生成 2,048 位RSA金鑰對和自簽名證書 (SHA256withRSA) (有效期為 36,50

  19. 0 天):

  20. CN=jizhi, OU=spark, O=spark, L=beijing, ST=Unknown, C=Unknown

  21. 輸入 <tomcat> 的金鑰口令

  22. (如果和金鑰庫口令相同, 按回車):

  23. 再次輸入新口令:

  24. [正在儲存C:\apache-tomcat-8.5.31\conf\key\tomcat.keystore]

  25.  
  26. C:\Users\Administrator>

  27.  
  28.  

 

二、tomcat的server.xml配置

1、註釋掉8080埠配置  (不是必須,也可以不註釋,不註釋的話,則http 8080埠也可以訪問)

<!--<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />-->

2、取消註釋8443埠配置,並改為443埠(訪問不加埠的設定(注意:Https訪問的埠是8443,可以修改成別的埠。),將生成的正式和密碼配置到keystoreFile="C:\apache-tomcat-8.5.31\conf\key\tomcat.keystore" keystorePass="123456"

 <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" 
               keystoreFile="C:\apache-tomcat-8.5.31\conf\key\tomcat.keystore" keystorePass="123456"
               >
        <!--<SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>-->
    </Connector>

 

注意:

如果是tomcat8.0,由於tomcat8.0的server.xml和tomcat8.5的不同,tomcat8.0的server.xml檔案應該這樣改動:

keystoreFile="D:\soft\apache-tomcat-8.0.47-9200\conf\key\tomcat.keystore"

keystorePass="tomcat123",此密碼就是生成證書時的密碼。

屬性 描述
clientAuth                                                               如果設為true,表示Tomcat要求所有的SSL客戶出示安全證書,對SSL客戶進行身份驗證
keystoreFile 指定keystore檔案的存放位置,可以指定絕對路徑,也可以指定相對於<CATALINA_HOME>(Tomcat安裝目錄)環境變數 的相對路徑。如果此項沒有設定,預設情況下,Tomcat將從當前作業系統使用者的使用者目錄下讀取名為“.keystore”的檔案。
keystorePass 指定keystore的密碼,如果此項沒有設定,在預設情況下,Tomcat將使用“changeit”作為預設密碼。
sslProtocol 指定套接字(Socket)使用的加密/解密協議,預設值為TLS,使用者不應該修改這個預設值。
ciphers 指定套接字可用的用於加密的密碼清單,多個密碼間以逗號(,)分隔。如果此項沒有設定,在預設情況下,套接字可以使用任意一個可用的密碼。

3、更改8443埠為443

改為:

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

 

三、訪問,輸入https://localhost/ 或 https://192.168.0.116