diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 0c7a876..4c5d89d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,9 +5,9 @@ - - - + + + + + + @@ -110,7 +113,8 @@ - + + diff --git a/src/main/java/com/rehome/mqttclienttemperature/MqttRSAClient.java b/src/main/java/com/rehome/mqttclienttemperature/MqttRSAClient.java index 35897cf..5d9691c 100644 --- a/src/main/java/com/rehome/mqttclienttemperature/MqttRSAClient.java +++ b/src/main/java/com/rehome/mqttclienttemperature/MqttRSAClient.java @@ -24,7 +24,7 @@ public class MqttRSAClient { /** * 客户端唯一标识 */ - public static String MQTT_CLIENT_ID = "AppServer_admin-client-temperature_APP_server_01"; + public static String MQTT_CLIENT_ID = "AppServer_temperature_APP_server_02"; /** *帐号 @@ -68,6 +68,10 @@ public class MqttRSAClient { //断线重连 options.setAutomaticReconnect(true); //mqtt服务器端单双向加密 +// InputStream caCrtFile = this.getClass().getResourceAsStream("/ssl/my_root_ca.crt"); +// InputStream crtFile = this.getClass().getResourceAsStream("/ssl/client.crt"); +// InputStream keyFile = this.getClass().getResourceAsStream("/ssl/client.key"); +// String password = ""; InputStream caCrtFile = this.getClass().getResourceAsStream("/ssl/my_root_ca.crt"); InputStream crtFile = this.getClass().getResourceAsStream("/ssl/client.crt"); InputStream keyFile = this.getClass().getResourceAsStream("/ssl/client.key"); diff --git a/src/main/java/com/rehome/mqttclienttemperature/utils/MqttSSLSocketFactory.java b/src/main/java/com/rehome/mqttclienttemperature/utils/MqttSSLSocketFactory.java index 4c9a2e6..8809702 100644 --- a/src/main/java/com/rehome/mqttclienttemperature/utils/MqttSSLSocketFactory.java +++ b/src/main/java/com/rehome/mqttclienttemperature/utils/MqttSSLSocketFactory.java @@ -39,8 +39,55 @@ public class MqttSSLSocketFactory { return sslContext.getSocketFactory(); } +// public static SSLSocketFactory getTwoDirSocketFactory(InputStream caCrtFile, InputStream crtFile, InputStream keyFile, +// String password) throws Exception { +// Security.addProvider(new BouncyCastleProvider()); +// +// // load CA certificate +// X509Certificate caCert = null; +// +// BufferedInputStream bis = new BufferedInputStream(caCrtFile); +// CertificateFactory cf = CertificateFactory.getInstance("X.509"); +// +// while (bis.available() > 0) { +// caCert = (X509Certificate) cf.generateCertificate(bis); +// } +// +// // load client certificate +// bis = new BufferedInputStream(crtFile); +// X509Certificate cert = null; +// while (bis.available() > 0) { +// cert = (X509Certificate) cf.generateCertificate(bis); +// } +// +// // load client private cert +// PEMParser pemParser = new PEMParser(new InputStreamReader(keyFile)); +// Object object = pemParser.readObject(); +// JcaPEMKeyConverter converter = new JcaPEMKeyConverter(); +// KeyPair key = converter.getKeyPair((PEMKeyPair) object); +// +// KeyStore caKs = KeyStore.getInstance(KeyStore.getDefaultType()); +// caKs.load(null, null); +// caKs.setCertificateEntry("cert-certificate", caCert); +// TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); +// tmf.init(caKs); +// +// KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); +// ks.load(null, null); +// ks.setCertificateEntry("certificate", cert); +// ks.setKeyEntry("private-cert", key.getPrivate(), password.toCharArray(), +// new java.security.cert.Certificate[]{cert}); +// KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); +// kmf.init(ks, password.toCharArray()); +// +// SSLContext sslContext = SSLContext.getInstance("TLSv1.2"); +// sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); +// +// return sslContext.getSocketFactory(); +// } + public static SSLSocketFactory getTwoDirSocketFactory(InputStream caCrtFile, InputStream crtFile, InputStream keyFile, - String password) throws Exception { + String password) throws Exception { Security.addProvider(new BouncyCastleProvider()); // load CA certificate @@ -86,5 +133,4 @@ public class MqttSSLSocketFactory { return sslContext.getSocketFactory(); } - }