Lösung verursacht wurde, ist hier der Lage, die Version prolem
Erstellen von BKS-Datei für Android-Client
Software-Installation erforderlichen Angaben zu entfernen BKS erstellen Datei:
herunterladen Schlüsselspeicher Explorer-Software von Link http://keystore-explorer.sourceforge.net/
herunterladen UnlimitedJCEPolicyJDK7 von http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
Extract zip und kopieren US_export_policy und local_policy zu Ihrem C:/programes Datei/java/jre7/lib/security Ordner.
Keystore Explorer-Software installieren.
Schritte zum Generieren BKS-Datei: (CA-Datei benötigen, Zertifikatsdatei, Schlüsseldatei und P12 i.e.PKCS Datei (falls vorhanden)
. 1) Erstellen von Trust-Datei mit Schlüsselspeicher-Software CA .crt-Datei.
Schritte:
Offene Software
Go File-> New-> wählen .bks aus dem Assistenten Um CA Zertifikatsdatei Go Tool- zu importieren> Importieren vertrauenswürdiges Zertifikat -> wählen CA CRT-Datei -> entert password -> (Es wird eine Ausnahme ausgelöst, wenn das Zertifikat selbstsigniert ist).
4.Speichern Sie die Datei mit der Erweiterung .bks.
2) Erstellen von Schlüsseldatei P12-Datei mit Schlüsselspeicher Software
Schritte
Offene Software Go File- mit> Neu> wählen .bks aus dem Assistenten
Import> p12-Datei Go Werkzeug -> Schlüsselpaar importieren -> PKCS # 12 aus dem Wizard wählen -> Passwort für Datei- und Brückendatei eingeben -> Namen eingeben (falls anders geändert werden soll) -> Neues Passwort eingeben
Speichern Sie die Datei mit .bks exte nsion.
3) Erstellen von Key-Datei zu verwenden, wenn P12
Schritte
Offene Software
Go File-> New-> select .bks aus dem Import-Assistenten mit Schlüsselspeicher-Software nicht verfügbar Datei > p12 Datei Go Tool -> Schlüsselpaar importieren -> OpenSSL aus dem Assistenten wählen -> ungekennzeichnetes Passwort für die Datei, brows .key und .crt (Zertifikatsdatei nicht CA) Datei -> Geben Sie den Namen des Alise ein (falls Sie den Namen ändern möchten, können Sie ihn behalten) so wie es ist) -> Neues Passwort eingeben
Datei mit der Erweiterung .bks speichern.
Beide Dateien im Ordner res/rohe kopieren (beide BKS-Dateien sind obligatorisch).
Code:
static final String ENABLED_CIPHERS[] = {
"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_ECDHE_RSA_WITH_RC4_128_SHA",
"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
};
// put this in a place where it can be reused
static final String ENABLED_PROTOCOLS[] = {
"TLSv1.2", "TLSv1.1", "TLSv1"
};
private void sslCon()
{
try {
// setup truststore to provide trust for the server certificate
// load truststore certificate
InputStream trustStoresIs = getResources().openRawResource(R.raw.client_ca);
String trustStoreType = KeyStore.getDefaultType();
KeyStore trustStore = KeyStore.getInstance(trustStoreType);
trustStore.load(trustStoresIs, "spsoft_123".toCharArray());
//keyStore.setCertificateEntry("ca", ca);
// initialize trust manager factory with the read truststore
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(trustStore);
// setup client certificate
// load client certificate
InputStream keyStoreStream = getResources().openRawResource(R.raw.client_cert_key);
KeyStore keyStore = null;
keyStore = KeyStore.getInstance("BKS");
keyStore.load(keyStoreStream, "your password".toCharArray());
KeyManagerFactory keyManagerFactory = null;
keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, "your password".toCharArray());
// Create an SSLContext that uses our TrustManager
SSLContext context = SSLContext.getInstance("SSL");
context.init(keyManagerFactory.getKeyManagers(), tmf.getTrustManagers(), null);
SSLSocketFactory sslsocketfactory = (SSLSocketFactory)context.getSocketFactory();
InetAddress serverAddr = InetAddress.getByName("192.168.11.104");
sslSocket = (SSLSocket) sslsocketfactory.createSocket(serverAddr, 5212);
//String[] ciphers = sslSocket.getEnabledCipherSuites();
sslSocket.setEnabledCipherSuites(ENABLED_CIPHERS);
// put this right before setEnabledCipherSuites()!
//sslSocket.setEnabledProtocols(ENABLED_PROTOCOLS);
//InputStream inputStream = sslSocket.getInputStream();
OutputStream out = sslSocket.getOutputStream();
Toast.makeText(getApplicationContext(), "Connected", Toast.LENGTH_SHORT).show();
sslSocket.close();
} catch (KeyManagementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (KeyStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnrecoverableKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Vergessen Sie nicht, SHA-256 zu verwenden, denn SHA-1 wird nicht mehr mit Android 23+ verwendet, und ist standardmäßig ... – Cukic0d