Here are the contents of certificates.h from that last sketch:
// from mkr1000-client.crt
const char my_cert[] = "-----BEGIN CERTIFICATE-----\n\
MIIC/TCCAeUCFDgSCNPj6HFzyoqxmzmLoL14ORNeMA0GCSqGSIb3DQEBCwUAMDsx\n\
CzAJBgNVBAYTAkZJMRQwEgYDVQQHDAtSYXV0aW9zYWFyaTEWMBQGA1UEAwwNMTky\n\
LjE2OC4xLjE0MDAeFw0yMDA5MDcxMjA4MjRaFw0yMjAxMzExMjA4MjRaMDsxCzAJ\n\
BgNVBAYTAkZJMRQwEgYDVQQHDAtSYXV0aW9zYWFyaTEWMBQGA1UEAwwNMTkyLjE2\n\
OC4xLjExNjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6aMh1I93+X\n\
iYODPTWMbQo/PR8m8JdvU5XN28xBA0FOZImjg5BbJuCrDt3a4Xxu42S2enoMQwNv\n\
X8PoaMXeAexBuLlgTwLebU8Qr4rQ83z23xO5yT1n8HnJH/GxS2335TmAcdUBixL2\n\
QLvVaZEzWBxW4ZaVFrGjCS4BqsaHwFaP4qyV03pyUvWf5391MzIcPbpNDhHuP5q2\n\
HwME8ghReLq8u6FH9cHBSAHVcGUWGBMdtZGmY0ge7Onayfuwj3ecNP2SIoTSKcUk\n\
vrWkTsg1YzfQ4xH5e3lbjF7GGMsqJBA3ciWG8A8uCVTbEFhRqJI/pCGMaujskqOx\n\
MdH89+6cTasCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAPsrRGU4/cG+hLleqk55V\n\
eV3Y1UUsdEclqbKn84FIsv8i96NOJEzi1IXxzl/+oxpbYg2UxTeeNaDQ7ffyx8BG\n\
ehO+ymLjQ8OAz+VS41WXs6QQx2HLoeNCXbflo6/BaVhe3q6xqMLVm3Gm6rPUGs27\n\
bH8AJc+B444gUDo68sJEvm0M8w+teq7PhnRgqiIEpseE47IXu2OiVCU/dl4I8cEj\n\
6D/8QtDJ3F6sVhAkDEx908XMeIqU5eXQ0ZR3TfrWlP626Jq/4X99J6ZqyAFUgw4i\n\
miWmnGddy/2VSxpRlVUOPV1njUC6+nB3fFnDCGcSWFosELoudFGOYHbESNo4S1q7\n\
gw==\n\
-----END CERTIFICATE-----";
const char my_key[] = "-----BEGIN RSA PRIVATE KEY-----\n\
MIIEpAIBAAKCAQEAzpoyHUj3f5eJg4M9NYxtCj89Hybwl29Tlc3bzEEDQU5kiaOD\n\
kFsm4KsO3drhfG7jZLZ6egxDA29fw+hoxd4B7EG4uWBPAt5tTxCvitDzfPbfE7nJ\n\
PWfweckf8bFLbfflOYBx1QGLEvZAu9VpkTNYHFbhlpUWsaMJLgGqxofAVo/irJXT\n\
enJS9Z/nf3UzMhw9uk0OEe4/mrYfAwTyCFF4ury7oUf1wcFIAdVwZRYYEx21kaZj\n\
SB7s6drJ+7CPd5w0/ZIihNIpxSS+taROyDVjN9DjEfl7eVuMXsYYyyokEDdyJYbw\n\
Dy4JVNsQWFGokj+kIYxq6OySo7Ex0fz37pxNqwIDAQABAoIBAGno6d/RU+74g+oD\n\
ERGuVwd1u6OIlrVKwJJ+4Ton6b9ErI1SYVNTJu7tQcXBOu5K+g7a7JY8Su4r3e/T\n\
6EHmuR2f405EbLyPwYFSkGqdCvT4qQq3ps3vxnrn+5QuyvgoqD199ty22dBypGSl\n\
1mQ06eo9L4++BdAyP7Zx7FWxqYu1cvs/0nCNJo0UFf00cTRyb4KVCsp0lCeq2vhj\n\
hC3XBQTLstglPHtesPKiPEXSWYiCy90nAlDgqVoDQA/DFFvMp8r3haV01aIQbtzn\n\
y1Ltog6AeAAR9rvDBbS+dAoUBnu5qHpZCqt7qzIn1J557/0oGNYovWrnVnXJJ9fx\n\
J8TCUoECgYEA8IK+DV4hHHZh85e+UrvSvzZsiRdWQK53S00TrME1yaSUHWdCWCJW\n\
geSEaYQ5OEC/4tKKp3zHFM1/W5AGNzEHgRDv18Lg0lIsmVSnPrUAgOVrah2OJqBJ\n\
Nt41/JT1RMxpY/jGGaGhgFw93zs1/B885acog4yjRw5sH+Xy/fAC+XECgYEA2+hp\n\
bI7dD6YVa/SO7gydxW8V6N11t3IezZcMJkT7DHpmvRqYvK1SeqLqcKxjFPTtl/tY\n\
VN1lHcw4m4nJOE+YXQ9Lc0nNiOVQWPiTLJVZHfhHXq1TSr73rvZV8uCG+wDewbs8\n\
Huep7XrM/ljj2Kbi/9cRPua4StfPZ85Idl46itsCgYEAwD3A665xiO6XHL4NwtOe\n\
gHhgCLQ+nTTW5bmWIF/PPn3uZhJDVW8c9nZR4IVvtycKOaNQcM+r0VTwl59nWHY4\n\
KVIAY9XBHlvQij6/7799x4mZchhtpzI3U0QKovntkjBRjTcsIRCwpokUa3pIjF3r\n\
ryUNnRis6f79LgH/WDqgJgECgYEAhaUwdOY6GOmRuUMuniOSustxIE1+3hb/+2gh\n\
3RwtCn9U8vY3/urC5n8eRY2uxay4vJXnL+RBMKPNf1F0tcFB0sSZ0R34SIs8kmW3\n\
Y+/78gfSsApcRV/bvTw+LdYgkmkL9+cneYzHK+lmrektx5xc9qko9PZY6DtR9D9c\n\
sHtBzuMCgYAAhdrekdzGcHNRxevaiJqmeY072TkWwQGvbuVoMd/PsVeYmVe/mbcS\n\
bEEghr9URmAMS4z6q50CyeuQvacxsw1iRdB5SEl2YLOnfhxj1Xx6+Yoz6sHCG2n0\n\
j0sGs6EtOkjSrqj3aEkfGhdvBC+GCTA6dXUGbbTgDMSxZ1+iYjqHZQ==\n\
-----END RSA PRIVATE KEY-----";
#ifndef _CERTIFICATES_H_
#define _CERTIFICATES_H_
#ifdef __cplusplus
extern "C"
{
#endif
/* This file is auto-generated by the pycert_bearssl tool. Do not change it manually.
* Certificates are BearSSL br_x509_trust_anchor format. Included certs:
*
* Index: 0
* Label: 192.168.1.140
* Subject: CN=192.168.1.140,L=Rautiosaari,C=FI
*/
#define TAs_NUM 1
static const unsigned char TA_DN0[] = {
0x30, 0x3b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
0x02, 0x46, 0x49, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x07,
0x0c, 0x0b, 0x52, 0x61, 0x75, 0x74, 0x69, 0x6f, 0x73, 0x61, 0x61, 0x72,
0x69, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0d,
0x31, 0x39, 0x32, 0x2e, 0x31, 0x36, 0x38, 0x2e, 0x31, 0x2e, 0x31, 0x34,
0x30,
};
static const unsigned char TA_RSA_N0[] = {
0xd6, 0x34, 0x88, 0xf6, 0x8d, 0xcd, 0x5b, 0x21, 0xd7, 0x08, 0xd7, 0x78,
0x6d, 0x93, 0x3c, 0x30, 0x06, 0x06, 0xc7, 0x7c, 0x9d, 0x63, 0xaf, 0x7d,
0xd1, 0x5e, 0xc5, 0x38, 0xf2, 0xb8, 0x8c, 0xab, 0x70, 0x40, 0xd2, 0xab,
0x98, 0x80, 0x1f, 0xcc, 0xa6, 0xd8, 0xba, 0xbf, 0x1a, 0x0d, 0xeb, 0x6e,
0x57, 0x7e, 0xf9, 0x92, 0xf6, 0x92, 0xa1, 0xff, 0x25, 0xb3, 0x3b, 0x78,
0xe5, 0x00, 0x58, 0x78, 0x2c, 0x41, 0xf2, 0xe1, 0xac, 0x36, 0xb3, 0x90,
0x7e, 0x90, 0x92, 0x5c, 0x9e, 0x95, 0x77, 0xca, 0x23, 0x0c, 0xb8, 0xdd,
0xc9, 0xe2, 0xff, 0xa2, 0x21, 0x10, 0xf5, 0x9a, 0xe5, 0xb8, 0x07, 0x8a,
0xd8, 0xfa, 0xd5, 0xaa, 0x7c, 0x14, 0xf8, 0xb2, 0xb5, 0xb8, 0x6b, 0x43,
0xb3, 0xff, 0x55, 0xa0, 0x58, 0x5b, 0x1d, 0xc1, 0x61, 0xe7, 0xdf, 0xac,
0x17, 0xf9, 0x67, 0x8e, 0x06, 0xfa, 0x42, 0x11, 0x66, 0x72, 0x24, 0xdd,
0x27, 0x92, 0x87, 0x87, 0x1a, 0x94, 0xfe, 0xde, 0x3f, 0xb6, 0x56, 0x68,
0x11, 0xa2, 0xe7, 0xb1, 0x22, 0xa7, 0xea, 0xa1, 0xb1, 0x71, 0x6c, 0xc7,
0x2a, 0xed, 0xd4, 0xef, 0xf9, 0xc0, 0xa4, 0x44, 0x66, 0x8b, 0x96, 0xae,
0x22, 0x5c, 0xe9, 0x06, 0x39, 0x1e, 0x06, 0x55, 0x7e, 0x3a, 0x9b, 0xc2,
0x3f, 0x65, 0x1c, 0xbb, 0x31, 0x73, 0x36, 0xa6, 0x27, 0x72, 0xe2, 0xa2,
0xee, 0xe1, 0xd6, 0xfc, 0x55, 0xa3, 0xc6, 0xe8, 0x6c, 0x60, 0x2b, 0x8a,
0xa2, 0xe5, 0x0f, 0x9b, 0x8d, 0xab, 0x6e, 0x22, 0xfe, 0x73, 0x30, 0x10,
0xdc, 0x16, 0x2e, 0xdc, 0x85, 0xd9, 0xaf, 0xa7, 0xe0, 0x29, 0x4b, 0x30,
0x14, 0xa4, 0x5a, 0x56, 0x18, 0xc8, 0xdb, 0x2b, 0xa8, 0x6a, 0x7c, 0x66,
0xb2, 0xa7, 0xcc, 0xe7, 0xe1, 0x5e, 0x3b, 0xf4, 0x36, 0x50, 0xe7, 0x51,
0x0a, 0x27, 0xd8, 0xd1,
};
static const unsigned char TA_RSA_E0[] = {
0x01, 0x00, 0x01,
};
static const br_x509_trust_anchor TAs[] = {
{
{ (unsigned char *)TA_DN0, sizeof TA_DN0 },
BR_X509_TA_CA,
{
BR_KEYTYPE_RSA,
{ .rsa = {
(unsigned char *)TA_RSA_N0, sizeof TA_RSA_N0,
(unsigned char *)TA_RSA_E0, sizeof TA_RSA_E0,
} }
}
},
};
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* ifndef _CERTIFICATES_H_ */
Here are the same certificates as they are formatted for use by Mosquitto on the other system:
$ cat certificate-authority.crt
-----BEGIN CERTIFICATE-----
MIIDVzCCAj+gAwIBAgIUKaLHUn/CYxO5sKL4NtKO8AzqBPcwDQYJKoZIhvcNAQEL
BQAwOzELMAkGA1UEBhMCRkkxFDASBgNVBAcMC1JhdXRpb3NhYXJpMRYwFAYDVQQD
DA0xOTIuMTY4LjEuMTQwMB4XDTIwMDgwNjEzMDM0M1oXDTIzMDUyNjEzMDM0M1ow
OzELMAkGA1UEBhMCRkkxFDASBgNVBAcMC1JhdXRpb3NhYXJpMRYwFAYDVQQDDA0x
OTIuMTY4LjEuMTQwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1jSI
9o3NWyHXCNd4bZM8MAYGx3ydY6990V7FOPK4jKtwQNKrmIAfzKbYur8aDetuV375
kvaSof8lszt45QBYeCxB8uGsNrOQfpCSXJ6Vd8ojDLjdyeL/oiEQ9ZrluAeK2PrV
qnwU+LK1uGtDs/9VoFhbHcFh59+sF/lnjgb6QhFmciTdJ5KHhxqU/t4/tlZoEaLn
sSKn6qGxcWzHKu3U7/nApERmi5auIlzpBjkeBlV+OpvCP2UcuzFzNqYncuKi7uHW
/FWjxuhsYCuKouUPm42rbiL+czAQ3BYu3IXZr6fgKUswFKRaVhjI2yuoanxmsqfM
5+FeO/Q2UOdRCifY0QIDAQABo1MwUTAdBgNVHQ4EFgQUfe2qNAXmvkaODnNBV5eG
MT5DPwowHwYDVR0jBBgwFoAUfe2qNAXmvkaODnNBV5eGMT5DPwowDwYDVR0TAQH/
BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEASMRlsSFf93u55r46dxVV+QLwuzgv
xy+bZszUW9z+7QYlUtZ7DcmSDe743TuSQPFyArwq/JtNSd/2GtR9Eoim+bUXG+qi
ZObyUqDix+BP5gGiUwoNq5tlMGK7/+sZUe+e2T7SbCdUi770PNLZroOGzkDkqJbc
3dRG4uBUSBdzbt/aIY93cyaxhLVek6mHQshBQODyjIZklluqgaqxJzUlqVZbFwyf
V9HzFJuUA7goykB8eJfq0E6x9kPtfMeFmPnwpqt2WQye+7lLnSaLDU/KqukixrFk
WYSCIMWzXBZhspWqPpXxYHHbGi7lobTeOFKpseN4uPpah2hw5x/4aQVMMw==
-----END CERTIFICATE-----
$ cat server.crt
-----BEGIN CERTIFICATE-----
MIIDFzCCAf+gAwIBAgIUOBII0+PocXPKirGbOYugvXg5E1kwDQYJKoZIhvcNAQEL
BQAwOzELMAkGA1UEBhMCRkkxFDASBgNVBAcMC1JhdXRpb3NhYXJpMRYwFAYDVQQD
DA0xOTIuMTY4LjEuMTQwMB4XDTIwMDgwNjEzMDM1NloXDTIyMDkxMjEzMDM1Nlow
OzELMAkGA1UEBhMCRkkxFDASBgNVBAcMC1JhdXRpb3NhYXJpMRYwFAYDVQQDDA0x
OTIuMTY4LjEuMTQwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3blX
tIRgLkfdMSXmFVALeTje/OJdZtKmaZsAD3/jN9DhJzuWjtPuex3XD+ifuTEtsiSg
6oj3JUTxXte6rXZTtOHoqociiGg94YB46HlWXCXqC+Df1ccCekKC8uhtcAM1FOL8
LDkRK6Ihw5vZa9DXxu65VATlgtOIP/wwcUaBKSw+EEiibxoW+kcC6+Z85y4wOuBt
UIjYNmjSWpzLMLoS4aqO1SWEGGQchaCQmuE2+V1hc3tjH2zAWcWYBil9ZVJVf/yf
G3/0eiIf5ruQgu03t8f14pMnD8DwZv18eekfyPHH5y0gPQlgGtDe+pADqmcdbIBb
klGfxg6Mby/GntCWBwIDAQABoxMwETAPBgNVHREECDAGhwTAqAGMMA0GCSqGSIb3
DQEBCwUAA4IBAQBfD929QiZ9yMSlzFymC4bvllUWBBqMyuQdPMOwaJc9wlogKPnw
hEAj7QDo3iJUIFhs9dfjWTvC6Ja3s18Gv65Zt2vajk/yBYWKz8rCFPsmYTcZdC6p
KznBo3JFRtmVIBAldl9ysztOpd6by8zkAmKH0LCPN5UdWEC0cyXXq88xYt/H24M4
7YTlLD9kG1yIxGQ6c0rC3Qtq/TbaRtBz8C1g3OgSeekOrTd6nA7tIX61Je8EZwW3
ypJwAbXUJYjQwzgkGpahu9F6WOXNt96zXj5F3VIkOn41cCbYKSCsUurOIKFL9mV3
xGEd9B1Y+C7XeaNLhDwOU9TfuhD/pv8Ph217
-----END CERTIFICATE-----