From 4c4136b36933aa8b91a7f0121be970e25136c045 Mon Sep 17 00:00:00 2001 From: xuesijing Date: Mon, 10 Mar 2025 15:56:44 +0800 Subject: [PATCH] OCT:add .crt and .key --- src/main/resources/application.properties | 14 ++- src/main/resources/certs/_.komect.com.crt | 119 ++++++++++++++++++++++ src/main/resources/certs/_.komect.com.key | 28 +++++ src/main/resources/certs/keystore.p12 | Bin 0 -> 7184 bytes 4 files changed, 157 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/certs/_.komect.com.crt create mode 100644 src/main/resources/certs/_.komect.com.key create mode 100644 src/main/resources/certs/keystore.p12 diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 5f4317b..40daea1 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -5,11 +5,17 @@ server.compression.enabled=true server.compression.mime-types=application/json server.compression.min-response-size=1KB -#server.port=8443 -server.ssl.key-store=classpath:mydomain.jks + +# 配置服务器端口为 HTTPS 默认端口 443 +#server.port=443 +# 配置密钥库类型为 PKCS12 +server.ssl.key-store-type=PKCS12 +# 配置密钥库文件路径,相对于 classpath +server.ssl.key-store=classpath:certs/keystore.p12 +# 配置密钥库密码 server.ssl.key-store-password=101010 -server.ssl.key-password=101010 -server.ssl.key-alias=mydomain +# 配置密钥别名 +server.ssl.key-alias=tomcat server.undertow.buffer-size=1024 diff --git a/src/main/resources/certs/_.komect.com.crt b/src/main/resources/certs/_.komect.com.crt new file mode 100644 index 0000000..e9a6e87 --- /dev/null +++ b/src/main/resources/certs/_.komect.com.crt @@ -0,0 +1,119 @@ +-----BEGIN CERTIFICATE----- +MIIG/zCCBeegAwIBAgIIUPS1tguj0LAwDQYJKoZIhvcNAQELBQAwgbQxCzAJBgNV +BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRow +GAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UECxMkaHR0cDovL2NlcnRz +LmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQDEypHbyBEYWRkeSBTZWN1 +cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwHhcNMjMwNjA4MDc0ODQ5WhcN +MjQwNzA5MDc0ODQ5WjCBgTELMAkGA1UEBhMCQ04xEjAQBgNVBAgMCea1meaxn+ec +gTESMBAGA1UEBwwJ5p2t5bee5biCMTMwMQYDVQQKDCrkuK3np7vvvIjmna3lt57v +vInkv6Hmga/mioDmnK/mnInpmZDlhazlj7gxFTATBgNVBAMMDCoua29tZWN0LmNv +bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALgQ3fh8pvHAn7NCkZxJ +q1VygM8DWR7qCZS55bMqaqceFdrly+bB+80WKfddXncD1pUKQ77SNsEZyC1DT+Ei +mOro8GITVl/iuZc6QtDM/ZeXnKDSrvxGL7j5EvOUYYAG1WEvZLzNptImWFoAZFF7 +h9+HmyZGWiEsCaDrunGNCJpwtborMkH8om6usa3SNaAdM9eKVzrX6yEc+AN3FcoY +/HQxz9rV7b3E4xjVoAkJRyuzihb0ITyYabFYuLI6u4UIlOEhf0SCr7W4KCKepuwS +Lg2MzVRiiuIRgZUqIzI8Oi5ta51mDYoaPxCz1bHiNCKvXqKdAMj6EePFtEkYgw2k +5lMCAwEAAaOCA0QwggNAMAwGA1UdEwEB/wQCMAAwKQYDVR0lBCIwIAYIKwYBBQUH +AwEGCCsGAQUFBwMCBgpghkgBhvhNAQIDMA4GA1UdDwEB/wQEAwIFoDA2BgNVHR8E +LzAtMCugKaAnhiVodHRwOi8vY3JsLmdvZGFkZHkuY29tL2dkaWcyczItMzQuY3Js +MF0GA1UdIARWMFQwSAYLYIZIAYb9bQEHFwIwOTA3BggrBgEFBQcCARYraHR0cDov +L2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5LzAIBgZngQwBAgIw +dgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5nb2RhZGR5 +LmNvbS8wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5j +b20vcmVwb3NpdG9yeS9nZGlnMi5jcnQwHwYDVR0jBBgwFoAUQMK9J47MNIMwojPX ++2yz8LQsgM4wIwYDVR0RBBwwGoIMKi5rb21lY3QuY29tggprb21lY3QuY29tMB0G +A1UdDgQWBBQFlcp3bINcQRB28YU7+JkTZNny0jCCAX8GCisGAQQB1nkCBAIEggFv +BIIBawFpAHYA7s3QZNXbGs7FXLedtM0TojKHRny87N7DUUhZRnEftZsAAAGImfrM +PQAABAMARzBFAiEAwa+pHvLsodr6zaIJHpuep/5KHQtFWdq5xjPxkRYimQACICag +BJw5onUWGDUuw4VDmO1baenKnAG+KdDcDHBdnySIAHYASLDja9qmRzQP5WoC+p0w +6xxSActW3SyB2bu/qznYhHMAAAGImfrNEQAABAMARzBFAiEAv+fe4tG+BSqZ3yeT +NbBDVtfvEMqxrTmAffGO+qT8Zr8CIAIjfZVueI2UAZdrShrRlzZZLK2Npd/t0i6o +4BIaw1o5AHcA2ra/az+1tiKfm8K7XGvocJFxbLtRhIU0vaQ9MEjX+6sAAAGImfrN +dAAABAMASDBGAiEA73dx8CnNv0WGtgByp+Uz3dLspndGI3hu1NOvMtjCCxMCIQD7 +BoJJe9knyxpvEOPY+O5ybWj/0HIirHxwJu+qpwp6ZzANBgkqhkiG9w0BAQsFAAOC +AQEABTskU6npLQQx5MUhAhoxH+nu+nz42E3A1vqljjHSey25QLtYKZG+7Zy4g9rZ +Lu09+/byhUL4VSYXaVbuxkwCu2DRnDH34C31Ons3JN5biE/kAqaXA0e+84sUGoot +UtDTe11F1bWwPO3/WYXICGO+GaukUwI4EZP69n6aROMS4+bXiYDqVqbcjq2v9yoq +JoOAkQOSg9fEYkz/oO/xqkTEK1uNjWErWiDW3vuWaXfya2lyRQYasfuryKSNBzhJ +W9tqNooO7Y1kbVSRrZ44kWyBWn0bVQGKzmHeckFP7rkYQi/g34UorHvMUUcJkaLE +p3lPKExQ4l0G4+CNqI2ZawgBrg== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT +EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp +ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3 +MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH +EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE +CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD +EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD +BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv +K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e +cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY +pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n +eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB +AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV +HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv +9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v +b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n +b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG +CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv +MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz +91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2 +RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi +DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11 +GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x +LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEfTCCA2WgAwIBAgIDG+cVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVT +MSEwHwYDVQQKExhUaGUgR28gRGFkZHkgR3JvdXAsIEluYy4xMTAvBgNVBAsTKEdv +IERhZGR5IENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMTAx +MDcwMDAwWhcNMzEwNTMwMDcwMDAwWjCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHku +Y29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1 +dGhvcml0eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3Fi +CPH6WTT3G8kYo/eASVjpIoMTpsUgQwE7hPHmhUmfJ+r2hBtOoLTbcJjHMgGxBT4H +Tu70+k8vWTAi56sZVmvigAf88xZ1gDlRe+X5NbZ0TqmNghPktj+pA4P6or6KFWp/ +3gvDthkUBcrqw6gElDtGfDIN8wBmIsiNaW02jBEYt9OyHGC0OPoCjM7T3UYH3go+ +6118yHz7sCtTpJJiaVElBWEaRIGMLKlDliPfrDqBmg4pxRyp6V0etp6eMAo5zvGI +gPtLXcwy7IViQyU0AlYnAZG0O3AqP26x6JyIAX2f1PnbU21gnb8s51iruF9G/M7E +GwM8CetJMVxpRrPgRwIDAQABo4IBFzCCARMwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMB8GA1Ud +IwQYMBaAFNLEsNKR1EwRcbNhyz2h/t2oatTjMDQGCCsGAQUFBwEBBCgwJjAkBggr +BgEFBQcwAYYYaHR0cDovL29jc3AuZ29kYWRkeS5jb20vMDIGA1UdHwQrMCkwJ6Al +oCOGIWh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Ryb290LmNybDBGBgNVHSAEPzA9 +MDsGBFUdIAAwMzAxBggrBgEFBQcCARYlaHR0cHM6Ly9jZXJ0cy5nb2RhZGR5LmNv +bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWQtTvZKGEacke+1bMc8d +H2xwxbhuvk679r6XUOEwf7ooXGKUwuN+M/f7QnaF25UcjCJYdQkMiGVnOQoWCcWg +OJekxSOTP7QYpgEGRJHjp2kntFolfzq3Ms3dhP8qOCkzpN1nsoX+oYggHFCJyNwq +9kIDN0zmiN/VryTyscPfzLXs4Jlet0lUIDyUGAzHHFIYSaRt4bNYC8nY7NmuHDKO +KHAN4v6mF56ED71XcLNa6R+ghlO773z/aQvgSMO3kwvIClTErF0UZzdsyqUvMQg3 +qm5vjLyb4lddJIGvl5echK1srDdMZvNhkREg5L4wn3qkKQmw4TRfZHcYQFHfjDCm +rw== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh +MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE +YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3 +MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo +ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg +MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN +ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA +PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w +wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi +EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY +avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+ +YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE +sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h +/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5 +IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD +ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy +OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P +TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER +dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf +ReYNnyicsbkqWletNw+vHX/bvZ8= +-----END CERTIFICATE----- diff --git a/src/main/resources/certs/_.komect.com.key b/src/main/resources/certs/_.komect.com.key new file mode 100644 index 0000000..b7f2434 --- /dev/null +++ b/src/main/resources/certs/_.komect.com.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4EN34fKbxwJ+z +QpGcSatVcoDPA1ke6gmUueWzKmqnHhXa5cvmwfvNFin3XV53A9aVCkO+0jbBGcgt +Q0/hIpjq6PBiE1Zf4rmXOkLQzP2Xl5yg0q78Ri+4+RLzlGGABtVhL2S8zabSJlha +AGRRe4ffh5smRlohLAmg67pxjQiacLW6KzJB/KJurrGt0jWgHTPXilc61+shHPgD +dxXKGPx0Mc/a1e29xOMY1aAJCUcrs4oW9CE8mGmxWLiyOruFCJThIX9Egq+1uCgi +nqbsEi4NjM1UYoriEYGVKiMyPDoubWudZg2KGj8Qs9Wx4jQir16inQDI+hHjxbRJ +GIMNpOZTAgMBAAECggEBAJtIl4r/1nOTdudrXJ6GRAYlQGfkwjXjacvP/Onm+e0c +44E1Zoy50G1XqnXmjkBHu6sm6ro8bDcCQi91Xxlm760WcV28RJ1GEB5151Jx7esK +2/eNZlSr/azGbGeUIaE5oqCHtCvYL0mRUe4z8G4RkjJRG+Hxbi4YEdNxq2wKeFyZ +EqZXBPfw259tY5lIZn3lE+3IuDJw9LDOVT/xq/ZFHgULbPYEBOj8tp/BbF6JOrjl +CPOkjdRIM8ompztlxBce3biVXVFP22dH9D5221Cj3sYc79LkONOjaKWklsGCjbNO +UCcZJZ70hZpdJCUBN2CMJcolBH+xT5B+kPnyj2pRQlECgYEA9UlbXTmGAyEacJVp +FfwVEIVjIJOxm5XZ7uI0/06MURviMDfVsOdXrswF6GcoJo1VT88Cmz1zn1/olPEW +Zardwch/8TXbA5+hUXEUN68h9mfZucliewZePX5uPN5+WiaClZ5WQjUTpjR1IFGk +Y3wn55B15ZKZyw7EPtulnpcvYokCgYEAwBr6espToQ57rU4Vh92T/pSuhumPZJIm +yVVhf+iEQT9Y9BSfM9reYxhwVZQVTdryQaFz0yQ1XIxG2tn6edfpnjUy+NAgsrdT +WAgzDKru0l7ht3/sr5By6yWRbyUYcPBV6FSAbiFKrV467YovVtcCfQdVNNUt8e7t +/ufQS8zqevsCgYEAkAnc2hjOhoXo9dX3WM6oPARoWpgAgyHzUWGKx6YDphmesLwJ +A5JGnkH28iupm0IBqBUjLbBfdmamuNf+VAOLp6Eq6KW8kBssaxvhSHXSltUTORN2 +flIWAzx8Vcg+IIhexKevdb+fY0mIwkrPIxCkikn9wateHqz0Nwla749OZykCgYAc +O9rUcSgZY6eJsRA5B7fYksGT0n/gqBpLPOE3i1Tkwgqw1NcRJ/nHVrAr47e92ZAB +VVlQjuHI2FURlTfa8IDFX8w+BVjI62i0Z4AZPIYdJRTHg2Wl5/T72mmljC4rayc1 +HjZB+WKgWFkQ0F5kxPT4qzs6qJo4FIWmESvr+BH+QQKBgGJ+ZT90jsERQfMzv6aL +OW8huYImT0NvRKqIG0K14amm1ku0G+rL8HMy0JIJUs0x5BqwacUEBHffQkAPQOIh +/6XBAsiZD10QlomuDMl1sOQSKacIOFlH8KFPM0RdgCRQk5oiYmdh2CeavkjkE9Cp +HpC22rgeJoxV9fq5Zd2diWJh +-----END PRIVATE KEY----- diff --git a/src/main/resources/certs/keystore.p12 b/src/main/resources/certs/keystore.p12 new file mode 100644 index 0000000000000000000000000000000000000000..65d4b2fdb2c035dd9d127f4c18b101f760e3ff1a GIT binary patch literal 7184 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 literal 0 HcmV?d00001