Kaynağa Gözat

彭工配置双向认证

mr 10 ay önce
ebeveyn
işleme
96193432dc

+ 0 - 72
src/main/java/com/om/config/AndroidSslConfiguration.java

@@ -1,72 +0,0 @@
-package com.om.config;
-
-import org.apache.catalina.connector.Connector;
-import org.apache.coyote.http11.Http11NioProtocol;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class AndroidSslConfiguration {
-
-    @Value("${android.ssl.key-store}")
-    private String keyStore;
-
-    @Value("${android.ssl.key-store-password}")
-    private String keyStorePassword;
-
-    @Value("${android.ssl.keyStoreType}")
-    private String keyStoreType;
-
-    @Value("${android.ssl.keyAlias}")
-    private String keyAlias;
-
-    @Value("${android.ssl.client-auth}")
-    private String clientAuth;
-
-
-    @Value("${android.ssl.trust-store}")
-    private String trustStore;
-
-    @Value("${android.ssl.trust-store-password}")
-    private String trustStorePassword;
-
-    @Value("${android.ssl.trust-store-type}")
-    private String trustStoreType;
-
-    @Value("${android.ssl.trust-store-provider}")
-    private String trustStoreProvider;
-
-    @Value("${android.server.port}")
-    private int androidPort;
-
-    @Bean
-    public TomcatServletWebServerFactory servletContainer() {
-        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
-        tomcat.addAdditionalTomcatConnectors(createSslConnector());
-        return tomcat;
-    }
-
-    private Connector createSslConnector() {
-        Connector connector = new Connector(Http11NioProtocol.class.getName());
-        Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
-        try {
-            connector.setScheme("https");
-            connector.setPort(androidPort);
-            protocol.setKeystoreFile(keyStore);
-            protocol.setKeystorePass(keyStorePassword);
-            protocol.setKeystoreType(keyStoreType);
-            protocol.setKeyAlias(keyAlias);
-
-             protocol.setTruststoreFile(trustStore);
-             protocol.setTruststorePass(trustStorePassword);
-             protocol.setTruststoreType(trustStoreType);
-             protocol.setTruststoreProvider(trustStoreProvider);
-           // protocol.setClientAuth(clientAuth);
-        } catch (Exception ex) {
-            throw new IllegalStateException("Failed to create SSL connector", ex);
-        }
-        return connector;
-    }
-}

+ 33 - 0
src/main/java/com/om/config/WebHttpConfiguration.java

@@ -0,0 +1,33 @@
+package com.om.config;
+
+import org.apache.catalina.connector.Connector;
+import org.apache.coyote.http11.Http11NioProtocol;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author peng
+ * @Decription 配置同时支持 HTTP 与 HTTPS 访问
+ * @date 2024/8/2 03:25
+ **/
+@Configuration
+public class WebHttpConfiguration {
+
+    @Value("${server.httpPort}")
+    private Integer httpPort;
+
+    @Bean
+    public TomcatServletWebServerFactory servletContainer() {
+        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
+        tomcat.addAdditionalTomcatConnectors(createHttpConnector());
+        return tomcat;
+    }
+
+    private Connector createHttpConnector() {
+        Connector connector = new Connector(Http11NioProtocol.class.getName());
+        connector.setPort(httpPort);
+        return connector;
+    }
+}

+ 2 - 2
src/main/java/com/om/utils/AesUtil.java

@@ -163,7 +163,7 @@ public class AesUtil {
          * 此处使用AES-128-ECB加密模式,key需要为16位。
          */
         // 加密
-/*       Map<String,Object> claims = new HashMap<>();
+       Map<String,Object> claims = new HashMap<>();
         claims.put("u_id", 1);
         claims.put("deviceSn", "123456");
         claims.put("appVersion", "v3.0");
@@ -173,7 +173,7 @@ public class AesUtil {
 
         // 解密
         GuidDTO guidDTOFromGuid = getGuidDTOFromGuid(guid);
-        System.out.println("解密后的字串是:" + guidDTOFromGuid);*/
+        System.out.println("解密后的字串是:" + guidDTOFromGuid);
 
         //加密密码
         String password = Encrypt("123456");

+ 4 - 8
src/main/resources/application-dev.yml

@@ -1,25 +1,21 @@
 server:
-  port: 8888
   tomcat:
     basedir: /tmp/tomcat
     connection-timeout: 120000
     disable-upload-timeout: false
   connectionUploadTimeout: 120000
-
-# 双向认证HTTPS配置(Android后端)
-android:
-  server:
-    port: 8444
+  httpPort: 8888
+  port: 8444
   ssl:
     #keyStore密钥库,存放了服务端证书的私钥、公钥和证书
-    key-store: classpath:serverCA.p12
+    key-store: classpath:diagServer.p12
     key-store-password: 123456
     keyStoreType: PKCS12
     keyAlias: 1
 
     # trustStore信任库,存放了服务端信任的客户端证书的公钥文件
     client-auth: need
-    trust-store: classpath:rootCA.keystore
+    trust-store: classpath:cacert.keystore
     trust-store-password: 123456
     trust-store-type: JKS
     trust-store-provider: SUN

BIN
src/main/resources/cacert.keystore


BIN
src/main/resources/diagServer.p12


BIN
src/main/resources/rootCA.keystore


BIN
src/main/resources/serverCA.p12


+ 3 - 0
src/main/resources/template/static/diagCert.crt

@@ -0,0 +1,3 @@
+-----BEGIN CERTIFICATE-----
+MIIENzCCAx+gAwIBAgIQEDEBADEyMjIxMjA0MTc2MzANBgkqhkiG9w0BAQsFADAnMQswCQYDVQQGEwJDTjEYMBYGA1UEAwwP5LqU6I+x5bel5Lia5qC5MB4XDTI0MDcxNzA5MDY1NloXDTI5MDcxNzA5MDY1NlowgZgxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdHdWFuZ3hpMRAwDgYDVQQHDAdMaXVaaG91MQ8wDQYDVQQKDAZXdWxpbmcxDzANBgNVBAsMBld1bGluZzEdMBsGA1UEAwwURGlhZ25vc3RpYyBhcHBhcmF0dXMxJDAiBgkqhkiG9w0BCQEWFXpob3V3ZW5Ad3VsaW5nLmNvbS5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALe6D5j5Ua8a0/8we0MRPHSlMSf0QFumBFSoF/iNj2hwvkCRpiOu9oX5KefqTHfAZ4KeGPCZqJEFJ0kNQJKqNGdBrpabQfT0mPFKbUORIfxv4KRIMbKjI8XJ2IPYzRo7O9Jv8MF0RG61ZlrYLkO5tylocY1hmCST2FCtATBFIFgswAfrvMIKuEVGzKZvP3Rs9+JMMgIDdCoGqXj3XKEu4NuBxooWRu7uub1eYTwwZ2UEwYv8ghrpdTgnPyZSk9jYI6X1LHlo4ozuTxXDMWDoqAz/ktnk1WYMGkqbICRAq4mpBzOdxM+M/jXcoCKCoMiFOuP5w//myg4FKm3PrYf2/EUCAwEAAaOB7DCB6TAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUZveTgf4bi4nvKhIL9TMDWd72Ui0wJwYJCZImiZPyLGQBBBoTGDQwMTAwMDAxMjIwNDI0MTAwMDAwMDI0MDAjBgkJkiaJk/IsZAIEFhMUODk4NjA0QTMxOTIxOTA0ODA0ODAwHgYJCZImiZPyLGQDBBETDzg2OTAwOTA2NTU5MTI0MTAMBgNVHQ8EBQMDB/mAMB0GA1UdDgQWBBT9rEQUKd/4+pjiqT4L8Ip0RWiU6zAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCO0aMLJ4FZ2D8wj/5H8GbaP2MgE3EY+6Gd2MLMlvS8Db3QICQPD5fF5clWyd3Rs1NbTywsTknqW1ZKd+vDMcgtl/U5UDCIwfreuH8/VrbuU6EcqMzTqd+iobl3Iorr1qHOfqT3wVKzslB9G/6y+xPcdkbQEOgKL0vcMfdottwpcuV4/JUR+MKoHggYdt82w5FNFo4dF2M6TnyRzn7CyIWRgCuwT+BcKJtPfkIGA4lU+7OF8svf76qryyajcahQfB1T+lBGznJEh2jUlkzIeBjCQIPSdJlrjbLZ+iFJwjlt00M8ioPyoOGe+ee5e6Qo+FITPbMd0ZMfKefUVilcMxF5
+-----END CERTIFICATE-----

+ 28 - 0
src/main/resources/template/static/diagClient.key

@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC3ug+Y+VGvGtP/
+MHtDETx0pTEn9EBbpgRUqBf4jY9ocL5AkaYjrvaF+Snn6kx3wGeCnhjwmaiRBSdJ
+DUCSqjRnQa6Wm0H09JjxSm1DkSH8b+CkSDGyoyPFydiD2M0aOzvSb/DBdERutWZa
+2C5DubcpaHGNYZgkk9hQrQEwRSBYLMAH67zCCrhFRsymbz90bPfiTDICA3QqBql4
+91yhLuDbgcaKFkbu7rm9XmE8MGdlBMGL/IIa6XU4Jz8mUpPY2COl9Sx5aOKM7k8V
+wzFg6KgM/5LZ5NVmDBpKmyAkQKuJqQczncTPjP413KAigqDIhTrj+cP/5soOBSpt
+z62H9vxFAgMBAAECggEAHQiRk25+yomWS8LpD6mnIJXERViTXQhIseoYU6ZnLa13
+WzPJCeWJvpUn2qbLa7cjhGAgd9EIctZaJXCrLiIogtK92L3zN9b5XlQRHTbPpJk3
+ai6gb+bY7dYeWYOGsej/ZJtc8+1ALTCMWrnD4d70w13mZ92u0cTtT55vTCX4XQZ7
+57TyVlXABchpvzCxgKWg5WDngni3IFAURnvTOqCdXcXejRlHeromfE4p/A3VFHwf
+bFg7BVaAlJVDjZD7MgtFVR+uv2pwa5tn6piQaWbjYvAe9rxzCheWFuUcHBd/aQqO
+tMW0Px/EXgXHEUKGtPYvb6GNaLK3BUNzXvci3A6HcQKBgQD+3wwdAlZOZLcGexyp
+3PiDmm6oluycoIj00CqdPWybyL9Fs4ybHHJX2TuFdSGmBJ1MjQcPioIt/JBGVjZk
+8syXkU4Va2jqPWSe3vc58ElJluc66xJBIBEHP8HKakJgNk0sgp6Wt3bRJLppFsxl
+SrgJSJ6pnyWKQ9zx686VxKkjHQKBgQC4ilsOXuqNHO0sWqXuaP4jAVXVXqzCRzov
+JtaeFRIMwRubQDb4+1FtojhIUx5mKA17ojwfL5qogutrlh52lRqz7hD54lRdKYMm
+TtYTi8fzOSNuqlQ47JHhD70E9x7GUBvs5qavthOLMFmSDAfnb3311DvrWCMno9TU
+IIA5zumNSQKBgCmrmBRqHGhGyTHTERWoni0OI8eGnXriOGImYsFAmLBDuxoPSA7Y
+MM2yI6wnQXAeUwWADUZ6M9yG7aPCVrRcihzB0g1oeUfK79eVxr//TEwu0vFsG5jw
+QDh6MRoCE4YderKrTHiB2HhLU/r4kkSBWeOSrvY2ofGgNNCM6ELOW4T1AoGAMGJe
+M2thdfQynyF5RgQTNdxgw9vZ0epY8Anv1WzS2bM76L2ybB+Anw0cUqIwYzp3JoZH
+2ylhFHOXBBNNE2xOnwR5QPs9gVuj/kRHTsKkfzno91gDUxV7vhWhSo78a6SPXdKv
+u3wyrZjUsz0iSWTrEqw9tZvbQ8Zpw+BtnjqI87kCgYBdy4AJLh7o7n7npQ8dIR1p
+8mjv8honJdiTZ0c9q+GFtSPm980nTnCbhP1d7zK15r28udDJpcfDipzZKqeuhEql
+C2nHm52YPh6Mcz+7pwpp5mwM5ddLkIrJ1+BE3RMYCUmHHelOfzZ7ke1TBHZvU62d
++dyQ1Eqrp8RoVyL/dgU9vw==
+-----END PRIVATE KEY-----

+ 18 - 0
src/main/resources/template/static/diagClient.p10

@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIC9TCCAd0CAQAwgZgxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdHdWFuZ3hpMRAw
+DgYDVQQHDAdMaXVaaG91MQ8wDQYDVQQKDAZXdWxpbmcxDzANBgNVBAsMBld1bGlu
+ZzEdMBsGA1UEAwwURGlhZ25vc3RpYyBhcHBhcmF0dXMxJDAiBgkqhkiG9w0BCQEW
+FXpob3V3ZW5Ad3VsaW5nLmNvbS5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBALe6D5j5Ua8a0/8we0MRPHSlMSf0QFumBFSoF/iNj2hwvkCRpiOu9oX5
+KefqTHfAZ4KeGPCZqJEFJ0kNQJKqNGdBrpabQfT0mPFKbUORIfxv4KRIMbKjI8XJ
+2IPYzRo7O9Jv8MF0RG61ZlrYLkO5tylocY1hmCST2FCtATBFIFgswAfrvMIKuEVG
+zKZvP3Rs9+JMMgIDdCoGqXj3XKEu4NuBxooWRu7uub1eYTwwZ2UEwYv8ghrpdTgn
+PyZSk9jYI6X1LHlo4ozuTxXDMWDoqAz/ktnk1WYMGkqbICRAq4mpBzOdxM+M/jXc
+oCKCoMiFOuP5w//myg4FKm3PrYf2/EUCAwEAAaAXMBUGCSqGSIb3DQEJBzEIDAYx
+MjM0NTYwDQYJKoZIhvcNAQELBQADggEBAAcDUz68aVAqYcR4xP2Stk2q62zvYoqB
+7j1Rg1MgKh6RukADrDPFw/vd4kaAwnIUArKNUNQF7RomeOeErEXqZZamGbRV498U
+9YTu9Fyy7B9P+MXvZwwYhoBFkJFxYDcgZVOPdmi2/ZNyOBHtCTM3QPO5FEINTr4O
+hqBEYAjF3qVxL2daBfw1d/BNBo3PtQZ2l2n/K/lHDSvp41lEydk+oIzWLwc5kg5f
+CTLTUKvI6hJ6uSL7rxYuXrmfTt14gMTw/Qid1rvb2lSFLSDTHY88564elEbx0Qss
+o++Bvr6u8h8V9jJHl3ayA+srtPgrQetFTJOLLtG6n6u/75U0QqM79WA=
+-----END CERTIFICATE REQUEST-----

BIN
自签名证书/clientCA.bks


+ 20 - 0
自签名证书/clientCA.crt

@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDSzCCAjMCFCbQo4tzBMbb6Ed6gfGFzY7QIiv7MA0GCSqGSIb3DQEBCwUAMF4x
+CzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdHdWFuZ1hpMRAwDgYDVQQHDAdHdWFuZ1hp
+MREwDwYDVQQKDAhDcmVkaXRmdDELMAkGA1UECwwCSVQxCzAJBgNVBAMMAllYMB4X
+DTI0MDcyMzAxNDE1M1oXDTM0MDcyMTAxNDE1M1owZjELMAkGA1UEBhMCQ04xEDAO
+BgNVBAgMB0d1YW5nWGkxEDAOBgNVBAcMB0d1YW5nWGkxETAPBgNVBAoMCENyZWRp
+dGZ0MQ8wDQYDVQQLDAZDbGllbnQxDzANBgNVBAMMBkNsaWVudDCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAN7CWAF9oE8CTNuo2uf31RxeQ4J+KbydMJLt
+RrP3XwgSs0aMMnSAv5y7i70sC50s7lXdr0RT40n6soWYqRk54HdYcHJA28N7WN/H
+alN8Q2NSW3Pes3u9dZLtBrkoGlHFFKkE1/Vo1S8AgG5KxpDGInrxVQs6C6YVN+SP
+fLpgjxuWfzLeiJWCDC7BJ/OoWfCcW9dYcX30Ob3y+O+gq7nWEJn0BZQLwjwAbprc
+sd0RWX/8pYU+SnJmNL0moZCwIyaB96o/OYgQauyNBs8QjqV5mGuZKAbOyM5ZeIS3
+mC+W+SpvLDuuwMvAw/BulcPfRT8sHg6jR9FwjMnNcjEJFnMr6YcCAwEAATANBgkq
+hkiG9w0BAQsFAAOCAQEAQydkdT85dR/3jsYU0RsWrMXJgQpNVsOIS3pN64O2Y4NI
+ozVPbwmDo3PVkP+lWC1SA3iLzl0ADc6L7W95ISPVkIDVi56W/W+LpUGaMmAhDLhP
+dFBc3zPe5O3+kdSLmCzLVWmmzABwGq+eoLUI+qGcg83NTf22DcJrfypJFcimlx7Q
+96HqKFlWV0EuO8nszXJT4gku2kTYXd49x1xpXtblxqrWUvQv377vmmnmpiwEOLUl
+KrBbDjiGulWBMWfpzrVL4UhMGiVqJNYqF/4jIQPwRtEjGcyUjkQbtHMMvWMxi0Zw
+f+ERs6zNsX6+N5E2X/e0ZymJ9ud9xl02bEMNeITIVQ==
+-----END CERTIFICATE-----

+ 17 - 0
自签名证书/clientCA.csr

@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICwjCCAaoCAQAwZjELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0d1YW5nWGkxEDAO
+BgNVBAcMB0d1YW5nWGkxETAPBgNVBAoMCENyZWRpdGZ0MQ8wDQYDVQQLDAZDbGll
+bnQxDzANBgNVBAMMBkNsaWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAN7CWAF9oE8CTNuo2uf31RxeQ4J+KbydMJLtRrP3XwgSs0aMMnSAv5y7i70s
+C50s7lXdr0RT40n6soWYqRk54HdYcHJA28N7WN/HalN8Q2NSW3Pes3u9dZLtBrko
+GlHFFKkE1/Vo1S8AgG5KxpDGInrxVQs6C6YVN+SPfLpgjxuWfzLeiJWCDC7BJ/Oo
+WfCcW9dYcX30Ob3y+O+gq7nWEJn0BZQLwjwAbprcsd0RWX/8pYU+SnJmNL0moZCw
+IyaB96o/OYgQauyNBs8QjqV5mGuZKAbOyM5ZeIS3mC+W+SpvLDuuwMvAw/BulcPf
+RT8sHg6jR9FwjMnNcjEJFnMr6YcCAwEAAaAXMBUGCSqGSIb3DQEJBzEIDAYxMjM0
+NTYwDQYJKoZIhvcNAQELBQADggEBALgrZHQldb9Z79RPFTR03gXgV4cXTg1H0n/a
+F++9ONVMzOUEbYAfst4Vi8ctLZo1R89aqhC/pHZcmjVBst8HmeBDHEXtTZp6A0EA
+1QM5OJgeHWxNdrixsWrxC0XlL5KYL1Lrm0x5UO12VkfJm0dR0GVn3jBhhftL1Pho
+CJv56h/wFSU77JpIMeMGwFx+XujaCa+xWY14QDWi1/RTU//M/xc12yA42kGEZw7A
+HvnMQVBxDqmBID4qgPvAesMebhVBpYv0LtwWPCRi3c5kqgyYYkvm4hgoO4zKKwHt
+PENO7V/bt8rcAa71YiDmgiAvKsTfF0/IqMu98eb81M4u4ZvFN0U=
+-----END CERTIFICATE REQUEST-----

+ 28 - 0
自签名证书/clientCA.key

@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDewlgBfaBPAkzb
+qNrn99UcXkOCfim8nTCS7Uaz918IErNGjDJ0gL+cu4u9LAudLO5V3a9EU+NJ+rKF
+mKkZOeB3WHByQNvDe1jfx2pTfENjUltz3rN7vXWS7Qa5KBpRxRSpBNf1aNUvAIBu
+SsaQxiJ68VULOgumFTfkj3y6YI8bln8y3oiVggwuwSfzqFnwnFvXWHF99Dm98vjv
+oKu51hCZ9AWUC8I8AG6a3LHdEVl//KWFPkpyZjS9JqGQsCMmgfeqPzmIEGrsjQbP
+EI6leZhrmSgGzsjOWXiEt5gvlvkqbyw7rsDLwMPwbpXD30U/LB4Oo0fRcIzJzXIx
+CRZzK+mHAgMBAAECggEAWAIXbAtanSyO+g/14MT5JRqW+ITo73R5HutwziRzHsjo
+nHxCaOX/DijItkYjFoeMaE9L8iZke7N4+bBNSsKjjPNbhcBbMxnWDJ+IQhCrvR9q
+M1auuboqLBDKYbfW4iyHk5luyy4OX+IGW8zeM4+cSs9zJprZxFXIvdv0ztvcXmyz
+9vgQQml+zar3cjT2KZrjsYliVq7gX0WOI6BCqQ0Yuas23UXNNkBIf46dr6QPLUK2
+fozHb5PBGkeL6aXrVK4dJ473gaWmwzGoEMJqJyyn1G1Zl7dZewFC6K2gddro687G
++bmxAfHjXWBYwzGvd4iTMJl6fV2QyjphFp4VWrEn8QKBgQD0tz/WRu2B0L6zUfzS
+W43QooxwW4yxOUx3SBByE5LM430CaMqjaFL+nbnF3lBCwf8NgvZqZqPDngO2xsUk
+caoK3KX3OqtI8eEH94LZSlMkIDdQJ/RLYrZ4NFH711qIm/3wa20BzuxPnjCiUM5Z
+VSB/MMd9zZaIjld2/FFP5X8JUQKBgQDpB+ggECpzVC3g2Sv7tbGCP9M6Z4SBtaBl
+rCWinLCHP5qEMeMOKqxtL/q2vbR9V3fVpF77N4hRtc7wkht4pawfRQ//JgIsn8Vy
+c7CUssQboHGJ6R3l1DbkbucrRZSekEY/OXkU2uscxh7xoT527b9nd8X1KeGtbRjX
+oKIVbzQPVwKBgQDQw8fk4AtcNJ2LUwVQ26QG+bS/YYqL4irWk5bcCtCwk92ggY9l
+ielLp3jFUZu858zTVQcszDUm+5WFhtrF9WWv8H5xhA59o0NrTX7GKj71Ubp+Widx
+bFvn/hJ2u0hTxGgFg0+yPDmiznwE7NSspw+bEh0NuKaUBoKdUjF37HvMkQKBgQCN
+DiIuNlrb0JqsvghnpsW6J9Q+SCbnNP/QS3HEisA4PgHT/zaHfsE8noxOTWqRbH63
+LXXo7uZvP3PyHx7N2srjarSSJ3mtdVDZRLogaE1Yw7e2WQul8N0BTThU8xtRF9fN
+sYZfX1xt4GcesBHVf3gas196VU2r4pvk+fDitJt4pQKBgG6paLx5suFYa+Ickurg
+/ER07oMzoeeQK+3SmRSmCIbVD0UC6uaw/KW7oKKYNcJPC6mCHJFY0qpiOTmR0Eo8
+zJGa9/2rT71zZ/tCqNdcB3V0sO0GUltwgh4Gq8EdWOEKmuQfmZlTePHTe8blfo8a
+qzP83HYWNd59FgmAnJ/4igIu
+-----END PRIVATE KEY-----

BIN
自签名证书/clientCA.p12


+ 20 - 0
自签名证书/rootCA.crt

@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDQzCCAisCFEAtOt/LVtx1bdijlOZVop1vDoSVMA0GCSqGSIb3DQEBCwUAMF4x
+CzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdHdWFuZ1hpMRAwDgYDVQQHDAdHdWFuZ1hp
+MREwDwYDVQQKDAhDcmVkaXRmdDELMAkGA1UECwwCSVQxCzAJBgNVBAMMAllYMB4X
+DTI0MDcyMzAxMzU1MloXDTM0MDcyMTAxMzU1MlowXjELMAkGA1UEBhMCQ04xEDAO
+BgNVBAgMB0d1YW5nWGkxEDAOBgNVBAcMB0d1YW5nWGkxETAPBgNVBAoMCENyZWRp
+dGZ0MQswCQYDVQQLDAJJVDELMAkGA1UEAwwCWVgwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQDLLfb4dwgvI25iEGDKlbWt8SrmYaCY34lc+0nIbNNnCk9u
+sg9eWS1rhXfENV+D8F0HUEnGceFRmi2gSUxJOffTIk+4Fapk6HXpqwTqD3TV1Qqz
+E4xu/MHmFfOiOCyh1FiEt4+QKFMaksaHxBM45b0wh59jHiqVCobvb5Oq+gp+R3Pz
+hW7Goymn5EUVf9FLn76kVHd5DZmlCeho0Z1URvBc8HODZ0UDYPzdcRVPGdqspUlm
+PcUltBvbYvz3/JpX07P/sYrgbgHX4e6VqEcGK9csC8e7r+A8k0T45wS3v811G2Uv
+4YTOKyPlEgjmhX7CtRofCf5o1+jdq1QT86Me85urAgMBAAEwDQYJKoZIhvcNAQEL
+BQADggEBABhmb2DOZyPrIZXcjr0+qDyQO69SPlp3WyFlOgX3R9VLXb4uuuH4aads
+noysfhGQ7P9oD74Rd8Km4DsRcj072OQ1TpVydTTCGsi4FfIVh8s+xU/uSFq0Ut1T
+eVUsUhGZZWuwbBIhBTiE2X0TWHIATPl9sAM9u/OC6LTLvn1agRoq2RMMMU1BMfBF
+/Xmf5c8H1x2Eyw30LN80JINutKdpMwbub5BXUopZAPbFqxiFLDAio2zd120w9SG1
+UvAVGquyhE5a2HL0rmzac8boWKIpe5nQqlM1MvS79NKAXTCmDVt2HO0ytmQqwAfR
+M8o/LyVDSdbX1m4nqcR01EwdWNHh4Xk=
+-----END CERTIFICATE-----

+ 17 - 0
自签名证书/rootCA.csr

@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICujCCAaICAQAwXjELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0d1YW5nWGkxEDAO
+BgNVBAcMB0d1YW5nWGkxETAPBgNVBAoMCENyZWRpdGZ0MQswCQYDVQQLDAJJVDEL
+MAkGA1UEAwwCWVgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDLLfb4
+dwgvI25iEGDKlbWt8SrmYaCY34lc+0nIbNNnCk9usg9eWS1rhXfENV+D8F0HUEnG
+ceFRmi2gSUxJOffTIk+4Fapk6HXpqwTqD3TV1QqzE4xu/MHmFfOiOCyh1FiEt4+Q
+KFMaksaHxBM45b0wh59jHiqVCobvb5Oq+gp+R3PzhW7Goymn5EUVf9FLn76kVHd5
+DZmlCeho0Z1URvBc8HODZ0UDYPzdcRVPGdqspUlmPcUltBvbYvz3/JpX07P/sYrg
+bgHX4e6VqEcGK9csC8e7r+A8k0T45wS3v811G2Uv4YTOKyPlEgjmhX7CtRofCf5o
+1+jdq1QT86Me85urAgMBAAGgFzAVBgkqhkiG9w0BCQcxCAwGMTIzNDU2MA0GCSqG
+SIb3DQEBCwUAA4IBAQBC+kmQzrIjdVVZLCZUApZlnbPk5DNlgRvXiu5/cu/HdlY8
+AKXKCbs9CJrqRVZ7ymWjSJa7rfgzOmjTYqhdOfRfprrFQrB8J3SCA9Tm5OaCM9KA
+vFs2IddD9YIp5b8wbFCMvGtx2NdSc1vNT6yJt87vOQugy0fHwk2y8SR6lQUCFacQ
+EpBljidZrN4+3jSMAVUyC/ovy0ezBNtFfGZ78K1sX+ZWl8C/2Vb6VjWOdTADmgFI
+ZqrTlP/hVhbyrhxe0A6iT90KcadlGFSGxEQVAFoMZjjso3rt/UPJxPt8Cu0uPMgP
+6kJw/ER4KoWKOwVxEOQszcgoflX33KfEGfIHiKhc
+-----END CERTIFICATE REQUEST-----

+ 28 - 0
自签名证书/rootCA.key

@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDLLfb4dwgvI25i
+EGDKlbWt8SrmYaCY34lc+0nIbNNnCk9usg9eWS1rhXfENV+D8F0HUEnGceFRmi2g
+SUxJOffTIk+4Fapk6HXpqwTqD3TV1QqzE4xu/MHmFfOiOCyh1FiEt4+QKFMaksaH
+xBM45b0wh59jHiqVCobvb5Oq+gp+R3PzhW7Goymn5EUVf9FLn76kVHd5DZmlCeho
+0Z1URvBc8HODZ0UDYPzdcRVPGdqspUlmPcUltBvbYvz3/JpX07P/sYrgbgHX4e6V
+qEcGK9csC8e7r+A8k0T45wS3v811G2Uv4YTOKyPlEgjmhX7CtRofCf5o1+jdq1QT
+86Me85urAgMBAAECggEARxdfKdLkXzIDhnZ6l4fImQMgYpnYSoU0l/8o8uL5GT2n
+S3EsJXQIi22Y2WNfd1fcBRoXpkLkdtv+iO38rkaFKy//OscB5urbjxYS0x7zX3p6
+kuwNICx6X9pgc+s52qnlCxL7PZKOeWbP5mM54peoGdnqcBD3D00up4qf3Zw9na8d
+BMoV0Y/ujte8zRdZ2CA2/BhXii9S2h+CNDIoqOOXHJJhTubGiWLxCyyYaBJ8qv+Y
+AOksXec6IjPcK7ca2xtyKkGC/ilbxvSHQV1AYASmVVaN/W/TLMRGgC9XfNTHe9EZ
+cs/i3/1ZxKO8j/0C9TLjuoeM8NvPR/R8X6wMzm39wQKBgQDfJLXY+uoLCU+BRDYr
+OSPCUsmlnZFytb/JX1xU8COoe5SSb9QOKNkcTZ+Vxwavb2ozY4gFqLFey3dx2Ho5
+8nnf/Pp0X6GIXj+N9Inomz+6E3AtqxsUfB0/CEihmnQdF3kUN53Lgck8bavJgSYg
+tVJ5uAiO8WTvuJG0nWgE0gZZIQKBgQDpGLngLH6s0/xtCtBPCGzKT9SeDQVVgXGS
+Jsge581oaQGb6a0IEzGKsATmzTP+ZkFcLm/kaBU246qWaiA6ZDsrQpC290QyeBQ/
+RdNWx020bFxgeFz4LXjEPC2LvO/UINnjKZJmRgzLCDCdJ1m67w34qOF9e+JMX+cx
+GEAIgjyfSwKBgHfjVlyEuvhBAVlXV68zXPYL2tFDbiDua2N6+7Wa692awAFJWepd
+ogBl6Cblrr7VIn8Hq842i01+Dee5wjmeAEMKvVmHA9ero4PWbb3uo3eK+AthUgRY
+hrIV9kf1Hwt+UAw/sWTkj0ULO2/hFqYeJXjGGrsKEQwG4yniJD/qw4RhAoGAYoyt
+qXWmaPOHOaLkx0VMmYx+3AOtSaVcmuoCme5vDcG3iG+XVF6pB3W73MjNPrWE1LBd
+ZjgLIBXJPabI0WcnDPcrr++CycOy671dyMait7FIrRC2Xcb71BuNNhM/YnQxKrWc
+y9i59+0SgJ7udPY09fiQvTjvSFMTr9IM4IwPjVkCgYEAze088vBlEUf+mMEd4mK9
+WPHCIrhJOciI1TQYKabRaKL4Ez4TLKQx5L1TXIQehf3mp2LvAbTwbdJbl2N3hbe0
+h0wmZGyMo2HlBegTL/uDwGc4HTSb+5XXLuUB2qEx2ujsowTynkrEHPiAIPJoV5n5
+lThJcRexAbkv+CVI55xL5sQ=
+-----END PRIVATE KEY-----

+ 20 - 0
自签名证书/serverCA.crt

@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDRzCCAi8CFAkcMz110CPSdOFKwfzzOC65p0ugMA0GCSqGSIb3DQEBCwUAMF4x
+CzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdHdWFuZ1hpMRAwDgYDVQQHDAdHdWFuZ1hp
+MREwDwYDVQQKDAhDcmVkaXRmdDELMAkGA1UECwwCSVQxCzAJBgNVBAMMAllYMB4X
+DTI0MDcyMzAxMzkzMFoXDTM0MDcyMTAxMzkzMFowYjELMAkGA1UEBhMCQ04xEDAO
+BgNVBAgMB0d1YW5nWGkxEDAOBgNVBAcMB0d1YW5nWGkxETAPBgNVBAoMCENyZWRp
+dGZ0MQswCQYDVQQLDAJJVDEPMA0GA1UEAwwGU2VydmVyMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAiF+TVUj2xog3kLjFZxUIpviLrc/vtU5gWaY53qVU
+Gz+hai2FHZJj3SRSrc9bx7QbpKbq3r+6ELsOf2HQRxN1rmBoYaGQZzynGYuhOENa
+O6R9CNHKkUKYB80Rb1uFVdhlmy1K4gXMfDwyXZAp61anDFzAkWa844ALqTVWOAWr
+w1JQUFb4bE5pfWUkBoq7SoXIUrEzw92g2cF5giaUQ7l5IBSMuIBNMGmsSCEmyueh
+J8nB8r6Z7e898GDka9IVNL8FDHE2YAxj+4qO43RhcP3tk6Nq5VFN/5iMPJmy4pVG
+jzqKEgJaE4ZCHMdF1HJ1Lr1VPUOZJs7AOQnz1DTUdhLQhwIDAQABMA0GCSqGSIb3
+DQEBCwUAA4IBAQAowNXMPenqMfMHPzdytMUdS4u4D0z0CGwuJgLxXdvkOoQOGJGz
+tK/nbW//yiDsKVub9QZwSYYWVLwslNa3RQKMHoNxNr92KDYrJcDMs8b/j7BDBhVF
+ET29Kx4cyqqyZK9/hSWvPQkDHeVfK3hOp0tiOFdidezs1iD5I8xiuLGG//EaE4IY
+MJNhIK8HraYmmeHKIUliNQdfITB7k9XqagzCd64as7rjofASj3A54NUGrcPL1V6U
+uewdR31JC7Fq3j2VitzLxRcT70bYr03c+aLFkDni/j/3c1bmJyDA9rnO1e6P9BJW
+dgTpkPUaAWLVfDWScVt88I3ZYD/F6AQqkoO3
+-----END CERTIFICATE-----

+ 17 - 0
自签名证书/serverCA.csr

@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICvjCCAaYCAQAwYjELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0d1YW5nWGkxEDAO
+BgNVBAcMB0d1YW5nWGkxETAPBgNVBAoMCENyZWRpdGZ0MQswCQYDVQQLDAJJVDEP
+MA0GA1UEAwwGU2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+iF+TVUj2xog3kLjFZxUIpviLrc/vtU5gWaY53qVUGz+hai2FHZJj3SRSrc9bx7Qb
+pKbq3r+6ELsOf2HQRxN1rmBoYaGQZzynGYuhOENaO6R9CNHKkUKYB80Rb1uFVdhl
+my1K4gXMfDwyXZAp61anDFzAkWa844ALqTVWOAWrw1JQUFb4bE5pfWUkBoq7SoXI
+UrEzw92g2cF5giaUQ7l5IBSMuIBNMGmsSCEmyuehJ8nB8r6Z7e898GDka9IVNL8F
+DHE2YAxj+4qO43RhcP3tk6Nq5VFN/5iMPJmy4pVGjzqKEgJaE4ZCHMdF1HJ1Lr1V
+PUOZJs7AOQnz1DTUdhLQhwIDAQABoBcwFQYJKoZIhvcNAQkHMQgMBjEyMzQ1NjAN
+BgkqhkiG9w0BAQsFAAOCAQEAI21ufkbg0hcgl1O2deKHbed9Uw4D8md7b5qfl5vu
+7dXFGwnhol0qztozmDtKzfAbRm8HpbZU8EcvcoBDbypYF8VHfzHER/lSSe0bIirr
+sO4WR5T4XIM6M9pI+v/ypRkA2JjctTcczMCXwfPUrQgaENWFprKCt/kOzSHCDlgi
+GiuD2UwCfQVgunwN9hmofzIpyTUDoOfEV6OkkKGTRSit1ijfLi2lCC1IfEZegnho
+qG7Ka51lb9V6C6blTm1UpJ7qHZF8LLHDZQ6PxUe1b0fesybSk7a8vi6kVZ+/BhGE
+4SORPMhxkAcLWwvuTq59rknQ0UPA+i5t58TyIZ18khf52g==
+-----END CERTIFICATE REQUEST-----

+ 28 - 0
自签名证书/serverCA.key

@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCIX5NVSPbGiDeQ
+uMVnFQim+Iutz++1TmBZpjnepVQbP6FqLYUdkmPdJFKtz1vHtBukpurev7oQuw5/
+YdBHE3WuYGhhoZBnPKcZi6E4Q1o7pH0I0cqRQpgHzRFvW4VV2GWbLUriBcx8PDJd
+kCnrVqcMXMCRZrzjgAupNVY4BavDUlBQVvhsTml9ZSQGirtKhchSsTPD3aDZwXmC
+JpRDuXkgFIy4gE0waaxIISbK56EnycHyvpnt7z3wYORr0hU0vwUMcTZgDGP7io7j
+dGFw/e2To2rlUU3/mIw8mbLilUaPOooSAloThkIcx0XUcnUuvVU9Q5kmzsA5CfPU
+NNR2EtCHAgMBAAECggEAAqRelxGA6nH09aJTllgtFAl1SoRG5h6jG9ZUtH1EGftx
+6QjOiLcJC6p3YzOrWQnVwUTHzYUt//X6/wYwaITpfw8SGdYgYi4MJLp0s9s/y8kE
+VrmA/a7dgcUvODBjO5/W9BpjPLbIPx3uPqubP4DgLD6kL0AsAUWK5346vrIcoX39
+bJX8zi/nDvdXficVaLuvprP0QPfGYoQrHCCR4+v3x0mgBwDCUVf96J4U4eceTiAB
+RML81yhu7Vf5gxf47r7fYrWmtRNMe/hfHc3rwkpEvNQ5PvYjw+ea136zxvZYa/0b
+r62NdO/ZvWIDPl6cZoxBv/R5g/KFK+TkDP+fg8W7fQKBgQC9Gb5wWi2qo6lmDPBj
+SCmp0FI0oBD3BFWGIMTXZPX9LgFpMYqEgZl3FMJxvn0AOnz1NjbP8pZ0Cxzs/ywF
+fm9IBrTOm5oCgjLWsBmS0gmOoeoydgmK2m8TGkvF/1m6siS2oWMRrq5HDfZilLOd
+H/ALfMb2Dx4JtWzPO5UXneSzDQKBgQC4nn1QcsORDFcuXEgcFWoDnXKp3olPltj2
+cikt3G7nTGF3UNjtdU8EjBsflsUI1Zt5X08czJNiFbcKlb4RvrKrD7qgrhXswtKh
+moRzFQTl+KWgt4EeVH0jGgyVyzwnh4fjiD6ZC4YBdnWgxxVoEJrc35eewNL8JtCM
+MSLuQ1U84wKBgGOOFSPDZj1rEnkGoNw0FrMvWMgZ6TSTFI+b2uXnYlZbjSSbj2h5
+bpkx1bjaZ6biI/1ZAHx0I9+OJjljkgKGcQHDfhcz9l4Ru8ApUB1q9NshxVGxsQ5o
+N4ggFPp1mADhXtDDoIujol8IK8n0racwNEln9LuAc/j6igGERdb8KnZVAoGANtMq
+F6fdF8f4Y9YXu+9ICkbJdFSXpkD/sT/5pprdfGacUxh5MxsxGgKZU2osnRECGKsL
+DVxbMDeOoeASD6b33ADRxUGtVSAN+NuwFZTaXYjXdsDH4T/p4XCs6BbwiDShUBp3
+rG9Vnj2VdOdqHftAYfMsTYKppSPJrrgwzVzFhU0CgYB5/sIn1+IjTSsaSsUTYvLy
+iMXw6fHRGDq1ICCgXnT2ZREg3MmU0VidJ3/74nbw0OEikKIDbLlp8nYCc8Xnh6DC
+W8APWJC93csu3h+qsYz2fPJNv6S5yN/m/P0w1SPjMS/8o8PfFY2F9jxH7U3GJQqt
+yLbLnDJh+9MCVPPgJmfh7g==
+-----END PRIVATE KEY-----

BIN
自签名证书/客户端证书生成.png


BIN
自签名证书/根证书生成.png