2017-02-16 3 views
3

In welchem ​​Format sollen Sie die Zertifikate (und Schlüssel) im WifiClientSecure-Modul bereitstellen? NO Beispiele existieren oder Dokumentation ihrer Verwendung.Angeben von Arduino WiFiClientSecure-Zertifikaten

Ich verfolge die Arduino (ESP32) WiFiClientSecure Beispiel-Code - und versuchen zu verbinden, während ein CA-Zertifikat spezifiziert, wie zum Beispiel:

client.connect(server, 443, test_ca_cert, test_client_cert, test_client_key)

(test_client_cert und test_client_key sind NULL-Zeiger). Wenn test_ca_cert ein NULL-Zeiger ist, ist die SSL-Verbindung in Ordnung.

Wenn ich versuche, meine eigene test_ca_cert angeben, habe ich immer:

CA cert: mbedtls_x509_crt_parse returned -0x2180 (das für „ungültig Format“ einen Fehlercode ist)

habe ich versucht, eine Vielzahl von Dingen für die test_ca_cert wie eine Zeichenfolge mit dem PEM-formatierten (Klartext) -Base64-codierten Zertifikat und einem Byte-Array der DER-formatierten Zertifikate. Nichts scheint zu funktionieren.

In welchem ​​Format sollte dieses Zertifikat angegeben werden?

Antwort

3

Ich fand es heraus durch eine Kombination von Brute-Force, und kämmen durch some mbedtls code online.

unsigned char test_ca_cert[] = 
"-----BEGIN CERTIFICATE-----\n" 
"MIIDpDCCAowCCQC7mCk5Iu3YmDANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UEBhMC\n" 
"VVMxFjAUBgNVBAgMDU5ldyBIYW1wc2hpcmUxDzANBgNVBAcMBk5hc2h1YTEYMBYG\n" 
"A1UECgwPYnJhZGdvb2RtYW4uY29tMR0wGwYDVQQDDBRCcmFkIEdvb2RtYW4gUm9v\n" 
"dCBDQTEiMCAGCSqGSIb3DQEJARYTYnJhZEBicmFkZ29kbWFuLmNvbTAeFw0xNDEy\n" 
"MDgwMTM2NDJaFw0yNDEyMDUwMTM2NDJaMIGTMQswCQYDVQQGEwJVUzEWMBQGA1UE\n" 
"CAwNTmV3IEhhbXBzaGlyZTEPMA0GA1UEBwwGTmFzaHVhMRgwFgYDVQQKDA9icmFk\n" 
"Z29vZG1hbi5jb20xHTAbBgNVBAMMFEJyYWQgR29vZG1hbiBSb290IENBMSIwIAYJ\n" 
"KoZIhvcNAQkBFhNicmFkQGJyYWRnb2RtYW4uY29tMIIBIjANBgkqhkiG9w0BAQEF\n" 
"AAOCAQ8AMIIBCgKCAQEAq0TfPz/2eH1vMhs5wKjZQU5KEpJH8n27jW3cSVPJPRHo\n" 
"tn1S14zzaxuMYhZ1LQJgqT3/V9eVJdJkgoW54dgHLZVMb0xRilJPXNtR9WIZI+3r\n" 
"6+7sm6OOhmxjOKUuTWdK+Rbx/KGU+xjQjlyw7Ir4hRLmfaNAw7gnZWyzVcJbvg8O\n" 
"5JsReO4x4CnDveX0EJK6L9kNpTSLJZoFsVPdA3QJrxUYOw9s7gQYSjxx1SlcXqQQ\n" 
"eWyJWF0FSkRcgRo4qu3JiV94kLUwYNno89G5kU1TnlK0d740KK/A3LN686HhtT66\n" 
"XTtE/GLP9EUdlNgEkSoa00580iZqxYZBjlswa04qPQIDAQABMA0GCSqGSIb3DQEB\n" 
"BQUAA4IBAQBqf27PAMC0cs5qgr6z5nUxSUN+o3Ap0YjNqrvBID0jQNPr3pfW8fy2\n" 
"7dGa3ZAGwPnAmMvx2M6UF5GRYA7lAiC/jBmp0qrdekst4FBx5whJL6tt6sSSmeNp\n" 
"4dF7OpGFFDeuBj1CJlN7dro+nd+wty9f7rpjNmGcNjD/vGOrk9T67uWB5NYDIrcn\n" 
"rBOAVb+yBnDphBH7UIXWnSBCyDGD7SjAnWPQdH6uRAhVrbhIPylC50NwhqjlN5su\n" 
"ll2eQ0Vfp5u+viLK441MwfF77CjhFMs50Ahu7y5ApRD9nzMdqav63dU4oKrdOJgK\n" 
"yiUGy+6qJ0KK7FyaU4YKbcsqmd/kev9m\n" 
"-----END CERTIFICATE-----\n"; 
: das heißt, durch das Einbetten Ihre eigene newlines in dem Array - das Zertifikat in genau das Format wie folgt angegeben werden