<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>nRF91 How to use Google&amp;#39;s primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/63366/nrf91-how-to-use-google-s-primary-and-backup-root-ca-on-the-modem</link><description>Hi, 
 
 I want to connect to Google Cloud IoT with a modified asset_tracker and want the TLS done by the modem like in asset_tracker. 
 Google has a primary and a backup root CA for IoT and they may switch between the primary and backup certificates at</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 23 Nov 2021 14:30:41 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/63366/nrf91-how-to-use-google-s-primary-and-backup-root-ca-on-the-modem" /><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/340380?ContentTypeID=1</link><pubDate>Tue, 23 Nov 2021 14:30:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:63c51a26-ccaf-4ce8-b3fe-55095ee75557</guid><dc:creator>Jeffrey Urban</dc:creator><description>&lt;p&gt;&lt;span&gt;I moved the example to a new repo&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;a href="https://github.com/JeffreyUrban/sdk-nrf."&gt;github.com/.../sdk-nrf.&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/340207?ContentTypeID=1</link><pubDate>Tue, 23 Nov 2021 00:34:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7955d61f-f8cc-4f57-bb3f-c82262ac730d</guid><dc:creator>Jeffrey Urban</dc:creator><description>&lt;p&gt;I got modem-based certs (also offloaded TLS and JWT calculation) working&amp;nbsp;&lt;span&gt;with Google Cloud IoT Core on my nRF9160-DK dev kit. See &lt;a href="https://github.com/nrfconnect/sdk-nrf/pull/6154"&gt;this pull request&lt;/a&gt;.&amp;nbsp;Instructions are in the README.rst.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/339733?ContentTypeID=1</link><pubDate>Fri, 19 Nov 2021 05:26:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d39fa783-22e9-44f1-8349-9fca59586eec</guid><dc:creator>Rokk Research</dc:creator><description>&lt;p&gt;Hi Jeffery, I&amp;#39;m not familiar with the cred utility, I used&amp;nbsp;modem_key_mgmt_write() programatically.&lt;/p&gt;
&lt;p&gt;I used 2 different tags for the certs - i.e., only 2 certs (primary and backup).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/339726?ContentTypeID=1</link><pubDate>Fri, 19 Nov 2021 01:29:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9f202ace-a373-432a-8830-a1ce289125f8</guid><dc:creator>Jeffrey Urban</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/members/rokk-research"&gt;Rokk Research&lt;/a&gt;,&lt;/p&gt;
&lt;p&gt;Thanks for confirming that you&amp;#39;ve gotten it to work. Can you clarify if you&amp;#39;ve put 3 certs (both of&amp;nbsp;&lt;span&gt;the minimal root CA set certs + the device cert) and the client private key into a single sec_tag?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I converted each of the Google minimal certs like this:&amp;nbsp;&lt;pre class="ui-code" data-mode="text"&gt;openssl x509 -inform DER -outform PEM -in gtsltsr.crt -out gtsltsr.pem&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I programmed the certs using the nRF91 device&amp;nbsp;&lt;a href="https://github.com/inductivekickback/cred"&gt;cred utility&lt;/a&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;python3 cred.py \
    --CA_cert gtsltsr.pem \
    --CA_cert GSR4.pem \
    --client_cert my_device-cert.pem \
    --client_private_key my_device-private.pem \
    --sec_tag 202 \
    --program_app &amp;lt;path-to-my-app&amp;gt;/build/zephyr/merged.hex
&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I&amp;#39;m running the code from the google_iot_mqtt sample, called after the modem comes up. I removed the added globalsign.inc cert from the example code. SNTP is successful. DNS resolve for&amp;nbsp;mqtt.2030.ltsapis.goog:8883 is successful.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If I include both Google minimal CA certs&amp;nbsp;(plus the device cert and key) in&amp;nbsp;one sec_tag, I get `could not connect, error -111`.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If I include only the primary cert `gtsltsr.pem`&amp;nbsp;(plus the device cert and key) in&amp;nbsp;one sec_tag, then I get `MQTT connect failed 5`.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If I create separate sec_tags for each of the minimal certs, and another sec_tag for the device cert + key, and reference all 3 sec_tags, I also get&amp;nbsp;`MQTT connect failed 5`.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Thanks,&lt;br /&gt;Jeffrey&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/339528?ContentTypeID=1</link><pubDate>Wed, 17 Nov 2021 21:32:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:97fef198-e812-4c8b-99b5-d31a31d9e0b4</guid><dc:creator>Rokk Research</dc:creator><description>&lt;p&gt;I am successfully using Google IoT Core for&amp;nbsp;a project on the nRF91 - I&amp;#39;m using the minimal root CA set described here for mqtt.2030.ltsapis.goog:&lt;br /&gt;&lt;a href="https://cloud.google.com/iot/docs/how-tos/mqtt-bridge#downloading_mqtt_server_certificates"&gt;https://cloud.google.com/iot/docs/how-tos/mqtt-bridge#downloading_mqtt_server_certificates&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I used the&amp;nbsp;modem_key_mgmt_write() method to write the PEM encoded certs during provisioning, then reference the tag list in the TLS config via&amp;nbsp;sec_tag_list.&lt;/p&gt;
&lt;p&gt;Note that I had to set&amp;nbsp;TLS_PEER_VERIFY_NONE&amp;nbsp;with modem firmware prior to 1.3.1, I haven&amp;#39;t yet tested with MFW1.3.1 to see if I can change it back to&amp;nbsp;TLS_PEER_VERIFY_REQUIRED.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/339512?ContentTypeID=1</link><pubDate>Wed, 17 Nov 2021 18:11:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:46f4600c-bd8e-4ecd-8c3c-631470ce9b73</guid><dc:creator>Jeffrey Urban</dc:creator><description>&lt;p&gt;Has anyone got modem-based certs (the primary and backup minimal set, or the complete set) working with Google Cloud IoT Core on nRF91 (&lt;span&gt;Asset Tracker&lt;/span&gt; v2 or otherwise)? It&amp;#39;s unclear from this discussion if anyone was successful. It&amp;#39;s also unclear what is the proper converted form, and which sets of certs (device and server) should be combined into separate sec_tags. I&amp;#39;ve tried several combinations and can&amp;#39;t get it working.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m also modifying the Asset Tracker v2 example, and using the nRF9160 DK with nRF Connect SDK v1.7.1.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/335537?ContentTypeID=1</link><pubDate>Fri, 22 Oct 2021 15:43:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5d8e14b3-622b-41d8-bef7-cccb1fa7f6c4</guid><dc:creator>mike-at-currant</dc:creator><description>&lt;p&gt;Great news - thanks for the update, it&amp;#39;s much appreciated!&amp;nbsp; I did set&amp;nbsp;CONFIG_MBEDTLS_CIPHER_GCM_ENABLED=y in the config, and noticed that&amp;nbsp;&lt;span&gt;TLS_PEER_VERIFY_REQUIRED still didn&amp;#39;t work.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;We&amp;#39;ll set&amp;nbsp;TLS_PEER_VERIFY_NONE until we can update to firmware 1.3.1.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/335416?ContentTypeID=1</link><pubDate>Fri, 22 Oct 2021 08:28:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e03cfbe3-fd38-4571-90f5-28129c725281</guid><dc:creator>Didrik Rokhaug</dc:creator><description>[quote user="mike-at-currant"]I have tried and have been unsuccessful, and was suspecting that the modem firmware doesn&amp;#39;t support the&amp;nbsp;TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 cipher suite.[/quote]
&lt;p&gt;Google Cloud recently changed their list of supported cipher suites. As their new list of supported suites aren&amp;#39;t supported by our older modem firmware versions, they can no longer be used together with Google Cloud.&lt;/p&gt;
&lt;p&gt;However, we have added support for some GCM cipher suites in modem firmware 1.3.1.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/335370?ContentTypeID=1</link><pubDate>Thu, 21 Oct 2021 20:49:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2fe47298-9c99-41db-9481-e2ed6120db3c</guid><dc:creator>mike-at-currant</dc:creator><description>&lt;p&gt;Hi there Arpad,&lt;/p&gt;
&lt;p&gt;Were you ever able to get the LTS version of Google IoT Core (using&amp;nbsp;mqtt.2030.ltsapis.goog&amp;nbsp;using the primary and backup certs) working with&amp;nbsp;&lt;span&gt;Modem firmware version 1.2.1?&lt;br /&gt;&lt;br /&gt;I have tried and have been unsuccessful, and was suspecting that the modem firmware doesn&amp;#39;t support the&amp;nbsp;TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 cipher suite.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/271429?ContentTypeID=1</link><pubDate>Fri, 25 Sep 2020 06:20:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8fd6e4ff-de73-450e-9734-72c65778ce60</guid><dc:creator>PopradiArpad</dc:creator><description>&lt;p&gt;Hi Didrik,&lt;/p&gt;
&lt;p&gt;thank you for your answer and sorry for my late one. I will try it.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;&amp;Aacute;rp&amp;aacute;d&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/266656?ContentTypeID=1</link><pubDate>Thu, 27 Aug 2020 08:58:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:96ca8dc9-4319-471a-9e39-0fab02baaeea</guid><dc:creator>Didrik Rokhaug</dc:creator><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;Modem firmware version 1.2.1, which has support for SNI has just been released.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF9160-DK/Download#infotabs"&gt;https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF9160-DK/Download#infotabs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Didrik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/261550?ContentTypeID=1</link><pubDate>Fri, 24 Jul 2020 09:40:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b935d9a9-db2a-43da-914d-cbc3a67e8abd</guid><dc:creator>PopradiArpad</dc:creator><description>&lt;p&gt;Hi Simon,&lt;/p&gt;
&lt;p&gt;thank you.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;&amp;Aacute;rp&amp;aacute;d&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/261470?ContentTypeID=1</link><pubDate>Thu, 23 Jul 2020 21:40:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:33f88f9a-33d7-4142-8d21-46d10ae1f11a</guid><dc:creator>Simon</dc:creator><description>&lt;div style="font-family:&amp;#39;Segoe UI&amp;#39;, system-ui, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;"&gt;I talked to a developer and got some insight.&lt;/div&gt;
&lt;div style="font-family:&amp;#39;Segoe UI&amp;#39;, system-ui, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;"&gt;&lt;/div&gt;
&lt;div style="font-family:&amp;#39;Segoe UI&amp;#39;, system-ui, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;"&gt;Modem firmware version 1.2.0 does not use SNI, so that may be the cause of the issue. This should be resolved in the next modem firmware release. We&amp;#39;ll inform you when it gets released.&lt;/div&gt;
&lt;div style="font-family:&amp;#39;Segoe UI&amp;#39;, system-ui, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;"&gt;&lt;/div&gt;
&lt;div style="font-family:&amp;#39;Segoe UI&amp;#39;, system-ui, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;"&gt;Best regards,&lt;/div&gt;
&lt;div style="font-family:&amp;#39;Segoe UI&amp;#39;, system-ui, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;, sans-serif;font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;"&gt;Simon&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/260681?ContentTypeID=1</link><pubDate>Sat, 18 Jul 2020 06:05:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1e6eeb51-d2d1-4111-8063-3da15be0c549</guid><dc:creator>PopradiArpad</dc:creator><description>&lt;p&gt;Hi Simon,&lt;/p&gt;
&lt;p&gt;thank you for your reply. From that blog code&amp;nbsp;&lt;span&gt;(&lt;/span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/telligent-evolution-components-attachments/01-27-00-00-00-00-12-59/nRF9160DKtoGoogleCloud.zip"&gt;nRF9160DKtoGoogleCloud.zip&lt;/a&gt;&lt;span&gt;) &lt;/span&gt;is the&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;tls_config-&amp;gt;peer_verify = TLS_PEER_VERIFY_NONE;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;workaround. See the function&amp;nbsp;&lt;strong&gt;gcloud.c:gcloud_provision&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;tls_config.peer_verify = 0;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;which is the same.&lt;/p&gt;
&lt;p&gt;The defined&amp;nbsp;ROOT_CERT at the begin of the file is wrong. It&amp;#39;s a self signed certificate, not the primary or the backup certificate of Google for&amp;nbsp;&lt;strong&gt;mqtt.2030.ltsapis.goog&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;openssl x509 -in unknown_cert_from_How_to_connect_nRF9160_DK_to_Google_Cloud.pem -text&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;pre class="ui-code" data-mode="text"&gt;Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            eb:e3:e0:f5:5f:02:0a:a3
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: CN = nrf91-marte
        Validity
            Not Before: Apr  5 11:15:17 2019 GMT
            Not After : Mar  2 11:15:17 4757 GMT
        Subject: CN = nrf91-marte
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:0a:bc:a2:d9:16:1a:7a:1c:a5:d0:31:96:7a:49:
                    75:59:fa:10:16:f5:59:b4:27:65:72:c5:69:8c:ec:
                    31:e5:d6:18:52:08:3b:4d:a1:59:3b:da:49:43:c8:
                    d7:13:6c:d1:00:7c:73:72:14:f6:80:61:0d:79:11:
                    35:4d:8d:aa:2d
                ASN1 OID: prime256v1
                NIST CURVE: P-256
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                4B:02:13:B7:DF:90:80:77:6F:34:23:FA:95:42:68:8C:D3:B9:DD:F1
            X509v3 Authority Key Identifier: 
                keyid:4B:02:13:B7:DF:90:80:77:6F:34:23:FA:95:42:68:8C:D3:B9:DD:F1

            X509v3 Basic Constraints: 
                CA:TRUE
    Signature Algorithm: ecdsa-with-SHA256
         30:45:02:20:5d:a4:40:ee:c2:aa:7e:f7:00:d9:b0:05:d8:06:
         03:5c:bf:28:63:a9:39:4e:08:ff:2c:05:2c:4b:bc:b6:b3:94:
         02:21:00:f3:ff:d4:5a:db:4c:46:49:9a:ca:58:21:c3:79:a0:
         b1:81:86:2a:4d:7b:ad:8f:b8:8f:ee:26:19:4c:2f:0e:7c
-----BEGIN CERTIFICATE-----
MIIBdTCCARugAwIBAgIJAOvj4PVfAgqjMAoGCCqGSM49BAMCMBYxFDASBgNVBAMM
C25yZjkxLW1hcnRlMCAXDTE5MDQwNTExMTUxN1oYDzQ3NTcwMzAyMTExNTE3WjAW
MRQwEgYDVQQDDAtucmY5MS1tYXJ0ZTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BAq8otkWGnocpdAxlnpJdVn6EBb1WbQnZXLFaYzsMeXWGFIIO02hWTvaSUPI1xNs
0QB8c3IU9oBhDXkRNU2Nqi2jUDBOMB0GA1UdDgQWBBRLAhO335CAd280I/qVQmiM
07nd8TAfBgNVHSMEGDAWgBRLAhO335CAd280I/qVQmiM07nd8TAMBgNVHRMEBTAD
AQH/MAoGCCqGSM49BAMCA0gAMEUCIF2kQO7Cqn73ANmwBdgGA1y/KGOpOU4I/ywF
LEu8trOUAiEA8//UWttMRkmaylghw3mgsYGGKk17rY+4j+4mGUwvDnw=
-----END CERTIFICATE-----
&lt;/pre&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Look at the &lt;strong&gt;Issuer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In my code I use the primary certificate of Google for&amp;nbsp;&lt;strong&gt;mqtt.2030.ltsapis.goog&lt;/strong&gt; uploaded to the modem together with my public certificate and private key to a definite sec_tag.&lt;/p&gt;
&lt;p&gt;The usage is&amp;nbsp;exact of &lt;strong&gt;nrf_cloud_transport.c:nct_provision&lt;/strong&gt; but with my sec_tag and google&amp;#39;s hostname:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static int nct_provision(void)
{
	static sec_tag_t sec_tag_list[] = { CONFIG_NRF_CLOUD_SEC_TAG };

	nct.tls_config.peer_verify = 2;
	nct.tls_config.cipher_count = 0;
	nct.tls_config.cipher_list = NULL;
	nct.tls_config.sec_tag_count = ARRAY_SIZE(sec_tag_list);
	nct.tls_config.sec_tag_list = sec_tag_list;
	nct.tls_config.hostname = NRF_CLOUD_HOSTNAME;
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;That&amp;nbsp;should&amp;nbsp;be enough to work, I think, but doesn&amp;#39;t.&lt;/p&gt;
&lt;p&gt;The only difference what I see is the signature algorithm: nRF Cloud (Amazon IoT) uses&amp;nbsp;&lt;span&gt;sha256WithRSAEncryption, Google&amp;#39;s signature for&amp;nbsp;&lt;strong&gt;mqtt.2030.ltsapis.goog&lt;/strong&gt;&amp;nbsp;is an&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ecdsa-with-SHA256 signature.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; Look at the &lt;strong&gt;Signature Algorithm&lt;/strong&gt; property of the following two root CA certificates:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;openssl x509 -in nrf_cloud_ca_certificate.pem -text&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            06:6c:9f:cf:99:bf:8c:0a:39:e2:f0:78:8a:43:e6:96:36:5b:ca
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, O = Amazon, CN = Amazon Root CA 1
        Validity
            Not Before: May 26 00:00:00 2015 GMT
            Not After : Jan 17 00:00:00 2038 GMT
        Subject: C = US, O = Amazon, CN = Amazon Root CA 1
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:b2:78:80:71:ca:78:d5:e3:71:af:47:80:50:74:
                    7d:6e:d8:d7:88:76:f4:99:68:f7:58:21:60:f9:74:
                    84:01:2f:ac:02:2d:86:d3:a0:43:7a:4e:b2:a4:d0:
                    36:ba:01:be:8d:db:48:c8:07:17:36:4c:f4:ee:88:
                    23:c7:3e:eb:37:f5:b5:19:f8:49:68:b0:de:d7:b9:
                    76:38:1d:61:9e:a4:fe:82:36:a5:e5:4a:56:e4:45:
                    e1:f9:fd:b4:16:fa:74:da:9c:9b:35:39:2f:fa:b0:
                    20:50:06:6c:7a:d0:80:b2:a6:f9:af:ec:47:19:8f:
                    50:38:07:dc:a2:87:39:58:f8:ba:d5:a9:f9:48:67:
                    30:96:ee:94:78:5e:6f:89:a3:51:c0:30:86:66:a1:
                    45:66:ba:54:eb:a3:c3:91:f9:48:dc:ff:d1:e8:30:
                    2d:7d:2d:74:70:35:d7:88:24:f7:9e:c4:59:6e:bb:
                    73:87:17:f2:32:46:28:b8:43:fa:b7:1d:aa:ca:b4:
                    f2:9f:24:0e:2d:4b:f7:71:5c:5e:69:ff:ea:95:02:
                    cb:38:8a:ae:50:38:6f:db:fb:2d:62:1b:c5:c7:1e:
                    54:e1:77:e0:67:c8:0f:9c:87:23:d6:3f:40:20:7f:
                    20:80:c4:80:4c:3e:3b:24:26:8e:04:ae:6c:9a:c8:
                    aa:0d
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                84:18:CC:85:34:EC:BC:0C:94:94:2E:08:59:9C:C7:B2:10:4E:0A:08
    Signature Algorithm: sha256WithRSAEncryption
         98:f2:37:5a:41:90:a1:1a:c5:76:51:28:20:36:23:0e:ae:e6:
         28:bb:aa:f8:94:ae:48:a4:30:7f:1b:fc:24:8d:4b:b4:c8:a1:
         97:f6:b6:f1:7a:70:c8:53:93:cc:08:28:e3:98:25:cf:23:a4:
         f9:de:21:d3:7c:85:09:ad:4e:9a:75:3a:c2:0b:6a:89:78:76:
         44:47:18:65:6c:8d:41:8e:3b:7f:9a:cb:f4:b5:a7:50:d7:05:
         2c:37:e8:03:4b:ad:e9:61:a0:02:6e:f5:f2:f0:c5:b2:ed:5b:
         b7:dc:fa:94:5c:77:9e:13:a5:7f:52:ad:95:f2:f8:93:3b:de:
         8b:5c:5b:ca:5a:52:5b:60:af:14:f7:4b:ef:a3:fb:9f:40:95:
         6d:31:54:fc:42:d3:c7:46:1f:23:ad:d9:0f:48:70:9a:d9:75:
         78:71:d1:72:43:34:75:6e:57:59:c2:02:5c:26:60:29:cf:23:
         19:16:8e:88:43:a5:d4:e4:cb:08:fb:23:11:43:e8:43:29:72:
         62:a1:a9:5d:5e:08:d4:90:ae:b8:d8:ce:14:c2:d0:55:f2:86:
         f6:c4:93:43:77:66:61:c0:b9:e8:41:d7:97:78:60:03:6e:4a:
         72:ae:a5:d1:7d:ba:10:9e:86:6c:1b:8a:b9:59:33:f8:eb:c4:
         90:be:f1:b9
-----BEGIN CERTIFICATE-----
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF
ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL
MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj
ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM
9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw
IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6
VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L
93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm
jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA
A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI
U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs
N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv
o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU
5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy
rqXRfboQnoZsG4q5WTP468SQvvG5
-----END CERTIFICATE-----
&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;openssl x509 -in mqtt_2030_ltsapis_goog_PRIMARY.pem -text&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;pre class="ui-code" data-mode="text"&gt;Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            01:f0:f7:9d:59:dd:6e:50:f7:42:73:71:50
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: C = US, O = Google Trust Services LLC, CN = GTS LTSR
        Validity
            Not Before: Nov  1 00:00:42 2018 GMT
            Not After : Nov  1 00:00:42 2042 GMT
        Subject: C = US, O = Google Trust Services LLC, CN = GTS LTSR
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:cd:f1:8c:8e:da:ef:b2:09:0a:19:77:00:24:50:
                    db:f9:73:77:68:91:f5:0b:7e:b0:3a:40:98:05:57:
                    65:cc:b8:43:6d:41:92:06:e4:75:0e:4b:a8:c5:9f:
                    c7:f4:c9:29:55:78:e4:42:c6:a1:72:8c:32:72:46:
                    7f:3a:77:e2:24
                ASN1 OID: prime256v1
                NIST CURVE: P-256
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                3E:FE:FF:CC:52:EB:BF:34:3E:3D:F3:40:D0:E4:25:B1:5F:B8:BB:52
    Signature Algorithm: ecdsa-with-SHA256
         30:45:02:21:00:f2:ae:7f:f5:6d:04:7a:86:c3:74:d4:c1:42:
         2a:ed:37:da:13:1a:77:6c:7e:db:8c:20:66:55:72:6e:a5:3f:
         45:02:20:6b:d1:29:82:b6:cb:a4:9a:21:a0:a5:a8:e3:7f:f8:
         05:8a:01:8c:df:81:7d:d3:6d:5b:09:6b:35:31:b2:f4:48
-----BEGIN CERTIFICATE-----
MIIBxTCCAWugAwIBAgINAfD3nVndblD3QnNxUDAKBggqhkjOPQQDAjBEMQswCQYD
VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzERMA8G
A1UEAxMIR1RTIExUU1IwHhcNMTgxMTAxMDAwMDQyWhcNNDIxMTAxMDAwMDQyWjBE
MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM
QzERMA8GA1UEAxMIR1RTIExUU1IwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATN
8YyO2u+yCQoZdwAkUNv5c3dokfULfrA6QJgFV2XMuENtQZIG5HUOS6jFn8f0ySlV
eORCxqFyjDJyRn86d+Iko0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUw
AwEB/zAdBgNVHQ4EFgQUPv7/zFLrvzQ+PfNA0OQlsV+4u1IwCgYIKoZIzj0EAwID
SAAwRQIhAPKuf/VtBHqGw3TUwUIq7TfaExp3bH7bjCBmVXJupT9FAiBr0SmCtsuk
miGgpajjf/gFigGM34F9021bCWs1MbL0SA==
-----END CERTIFICATE-----
&lt;/pre&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;Aacute;rp&amp;aacute;d&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/260671?ContentTypeID=1</link><pubDate>Fri, 17 Jul 2020 23:32:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3549e711-7775-4f20-858c-abc85f26966b</guid><dc:creator>Simon</dc:creator><description>&lt;p&gt;I am currently looking into your questions. In the meanwhile, you should check out &lt;a href="https://devzone.nordicsemi.com/nordic/cellular-iot-guides/b/software-and-protocols/posts/how-to-connect-nrf91-to-google-cloud"&gt;this blog&lt;/a&gt;, if you haven&amp;#39;t seen it already.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/260066?ContentTypeID=1</link><pubDate>Wed, 15 Jul 2020 08:30:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a3c68099-33b4-49ba-b563-83806165e225</guid><dc:creator>PopradiArpad</dc:creator><description>&lt;p&gt;Hi Simon,&lt;/p&gt;
&lt;p&gt;update: The different root CAs should come to different sec_tags installed on the modem and that sec_tags must be referenced from the application software. That&amp;#39;s clear me now.&lt;/p&gt;
&lt;p&gt;But I have a problem when I try to verify the peer in the TLS connection:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;struct mqtt_sec_config *tls_config =  &amp;amp;client-&amp;gt;transport.tls.config;
tls_config-&amp;gt;peer_verify = MQTT_TRANSPORT_SECURE;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;results in&amp;nbsp;EOPNOTSUPP 95 (Operation not supported on socket)&lt;/p&gt;
&lt;p&gt;When I use&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;tls_config-&amp;gt;peer_verify = TLS_PEER_VERIFY_NONE;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;I can connect.&lt;/p&gt;
&lt;p&gt;The peer verification works on Amazon with its&amp;nbsp;sha256WithRSAEncryption signature. Google&amp;#39;s signature for&amp;nbsp;mqtt.2030.ltsapis.goog&amp;nbsp;is an&lt;span&gt;&amp;nbsp;&lt;/span&gt;ecdsa-with-SHA256 signature.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Is that not supported?&lt;/p&gt;
&lt;p&gt;Is this a bug in the modem software?&lt;/p&gt;
&lt;p&gt;I use the latest one (mfw_nrf9160_1.2.0.zip).&lt;/p&gt;
&lt;p&gt;With best regards,&lt;/p&gt;
&lt;p&gt;&amp;Aacute;rp&amp;aacute;d&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/258707?ContentTypeID=1</link><pubDate>Tue, 07 Jul 2020 04:05:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eac8dfd4-ba3e-4f44-9709-8d1a9c38a679</guid><dc:creator>PopradiArpad</dc:creator><description>&lt;p&gt;Hi Simon,&lt;/p&gt;
&lt;p&gt;this is not a big problem for me now:&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/63357/nrf91-can-t-get-to-nrf-cloud-getaddrinfo-failed--11"&gt;this one&lt;/a&gt;&amp;nbsp;is much bigger :)&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;&amp;Aacute;rp&amp;aacute;d&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF91 How to use Google's primary and backup root CA on the modem?</title><link>https://devzone.nordicsemi.com/thread/258691?ContentTypeID=1</link><pubDate>Mon, 06 Jul 2020 23:47:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:64256d44-7faf-4e1d-afef-14c52ed1090d</guid><dc:creator>Simon</dc:creator><description>&lt;p&gt;Currently, a huge portion of the support team (including many of the experts on nRF9160) is on summer vacation, and you may experience delayed answers. My apologies for that.&lt;/p&gt;
&lt;p&gt;I will try to provide you with an answer within this week.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>