spring boot啟用tomcat ssl
阿新 • • 發佈:2022-05-04
首先要生成一個keystore證書。參考:Tomcat建立HTTPS訪問,java訪問https,ssl證書生成:cer&jks檔案生成摘錄,spring-boot
這裡復現一下完整過程:
安裝好java後,cmd就可以使用keytool了。
生成ssl證書:
C:Usersmiaorf>keytool -genkey -alias tomcatjks -keyalg RSA -keystore d:tomcat.jks 輸入金鑰庫口令: 再次輸入新口令: 您的名字與姓氏是什麼? [Unknown]: ryan miao 您的組織單位名稱是什麼? [Unknown]: com.test 您的組織名稱是什麼? [Unknown]: com.test 您所在的城市或區域名稱是什麼? [Unknown]: sz 您所在的省/市/自治區名稱是什麼? [Unknown]: gd 該單位的雙字母國家/地區程式碼是什麼? [Unknown]: cn CN=ryan miao, OU=com.test, O=com.test, L=sz, ST=gd, C=cn是否正確? [否]: y 輸入 <tomcatjks> 的金鑰口令 (如果和金鑰庫口令相同, 按回車):
檢視證書:
C:Usersmiaorf>keytool -list -v -keystore d:tomcat.jks 輸入金鑰庫口令: 金鑰庫型別: JKS 金鑰庫提供方: SUN 您的金鑰庫包含 1 個條目 別名: tomcatjks 建立日期: 2016-9-5 條目型別: PrivateKeyEntry 證書鏈長度: 1 證書[1]: 所有者: CN=ryan miao, OU=com.test, O=com.test, L=sz, ST=gd, C=cn 釋出者: CN=ryan miao, OU=com.test, O=com.test, L=sz, ST=gd, C=cn 序列號: 32d82f57 有效期開始日期: Mon Sep 05 21:27:52 CST 2016, 截止日期: Sun Dec 04 21:27:52 CST 2016 證書指紋: MD5: E6:03:5E:97:78:A5:F8:A4:DA:69:00:45:48:41:64:6E SHA1: 34:A7:16:80:34:69:B6:5E:35:83:1E:B6:61:1A:87:C6:99:13:1B:BD SHA256: CC:1E:E1:99:B1:EA:B6:67:F1:53:A5:11:63:4A:31:53:8D:36:2C:15:59:0E:E6:D6:35:22:E5:C4:48:B6:AC:82 簽名演算法名稱: SHA256withRSA 版本: 3 擴充套件: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: BC 2B C1 06 8C AC 5B 6D 38 BB 51 36 BA C5 9E CB .+....[m8.Q6.... 0010: 53 EE 28 49 S.(I ] ] ******************************************* *******************************************
預設情況下,-list 命令列印證書的 MD5 指紋。而如果指定了 -v 選項,將以可讀格式列印證書,如果指定了 -rfc 選項,將以可列印的編碼格式輸出證書。
C:Usersmiaorf>keytool -list -rfc -keystore d:tomcat.jks 輸入金鑰庫口令: 金鑰庫型別: JKS 金鑰庫提供方: SUN 您的金鑰庫包含 1 個條目 別名: tomcatjks 建立日期: 2016-9-5 條目型別: PrivateKeyEntry 證書鏈長度: 1 證書[1]: -----BEGIN CERTIFICATE----- MIIDYTCCAkmgAwIBAgIEMtgvVzANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJj bjELMAkGA1UECBMCZ2QxCzAJBgNVBAcTAnN6MREwDwYDVQQKEwhjb20udGVzdDER MA8GA1UECxMIY29tLnRlc3QxEjAQBgNVBAMTCXJ5YW4gbWlhbzAeFw0xNjA5MDUx MzI3NTJaFw0xNjEyMDQxMzI3NTJaMGExCzAJBgNVBAYTAmNuMQswCQYDVQQIEwJn ZDELMAkGA1UEBxMCc3oxETAPBgNVBAoTCGNvbS50ZXN0MREwDwYDVQQLEwhjb20u dGVzdDESMBAGA1UEAxMJcnlhbiBtaWFvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAoorikcrv8WedDYA4LvmnXTRRtanHtsSKJXlv/NLgcVYwsBncb63q nCPgDbHpFXO2X/qg84ogneMHTu41cLzFAUsdym9aRCHnSLk1gO0ohJoNPOlYBqit 4dbdF+T/dEwh5foq6JivUGPx2hc+TI4QnLrRDe1TS9ftGRStHNMJVBXm7A1gpbHL PRrC01V0uCn4SK5BQ+/P0SfClJUM7uOI7HgJKG276o3XXLUM2S5BJrAJz2iJmnIJ BuwqaQXKdrWIlRXPNIVNmKSjGr/MhcnhrKWIbvNe4tlyahFQP61Rl08eqxtRmrLy WNHG22mzJ7FP4pWE8wiKH678iVGQJrGjDQIDAQABoyEwHzAdBgNVHQ4EFgQUvCvB BoysW204u1E2usWey1PuKEkwDQYJKoZIhvcNAQELBQADggEBAAjzv65Np0ju1y/f WQBR2l0+VuLN8NTaR3WciKqnerYTXGOB1///nVpJhmVvBYwim9MNuN8aG3GmQD1O 8e9NJZ5fR4KIWrrtPRGHNQQEMVVOLKzTt80AGGqVcpHuSdjB0yBQPSCXhYHOiTI8 bpSjW5rVRFNh1obRe0ohnbB1PZaz1U5t3Cjo8ESOa3jp/3QP81o8iL9+eJnwjcK+ iD3n1F7i7izeBuOxfybEv47ZGVDkNRcKmzHWizQ66nhtGLU/nYuZzLErvQAmuzT6 Boh+m8O5yMtxw4WParrTtD0dIG8wE15/I6nwPqPh9kGzs85vFTccta+Z9jm7V4rC r2JAKVs= -----END CERTIFICATE----- ******************************************* *******************************************
將tomcat.jks複製到classpath下。並且配置application.yml:
server.port = 8443
server.ssl.key-store = classpath:tomcat.jks
server.ssl.key-store-password = secret
server.ssl.key-password = password
啟動:
gradlew bootRun,
最終列印資訊:
2016-09-05 21:54:05.003 INFO 6080 --- [ restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8443 (https)
2016-09-05 21:54:05.008 DEBUG 6080 --- [ restartedMain] o.s.w.c.s.StandardServletEnvironment : Adding [server.ports] PropertySource with highest search precedence
2016-09-05 21:54:05.019 INFO 6080 --- [ restartedMain] c.r.b.config.ApplicationContextConfig : Started ApplicationContextConfig in 17.621 seconds (JVM running for 21.676)
瀏覽器訪問:
https://localhost:8443/