#
# requires RouterOS, version=7.19
# requires device-mode, fetch
-#
-#:local ScriptName [ :jobname ];
-#
-# CloudFlare\r
-#/tool/fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem;\r
-#/certificate/import file-name=DigiCertGlobalRootCA.crt.pem passphrase="";\r
-#/tool/ fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt.pem;\r
-#/certificate/import file-name=DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt.pem passphrase="";\r
-# Quad9\r
-#/tool/fetch mode=https url="https://cacerts.digicert.com/DigiCertGlobalG3TLSECCSHA3842020CA1-1.crt.pem"\r
-#/certificate/import file-name=DigiCertGlobalG3TLSECCSHA3842020CA1-1.crt.pem passphrase="";\r
-:global tmpAddCerts true;
-
-:global GlobalScriptsUrl;
-:local UrlSuffix [/system/identity/get name];
-:local UrlDir "certs/";
-:local CertUrl ($GlobalScriptsUrl . $UrlDir . $UrlSuffix ."/");\r
-\r
-:log error $CertUrl;\r
-\r
-:do {
+:local ExitOK false;
+:onerror Err {
+ :global GlobalConfReady; :global GlobalFuncReady;
+ :retry { :if ($GlobalConfReady != true || $GlobalFuncReady != true) \
+ do={ :error ("Global config and/or functions not ready."); }; } delay=500ms max=50;
+ :local ScriptName [ :jobname ];
+
+ :global tmpAddCerts true;
+
+ :global GlobalScriptsUrl;
+ :local UrlSuffix [/system/identity/get name];
+ :local UrlDir "certs/";
+ :local CertUrl ($GlobalScriptsUrl . $UrlDir . $UrlSuffix ."/");
+
+ :log error $CertUrl;
+
:local CertName "DigiCert-Global-Root-CA.pem";
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="DigiCert-Global-Root-CA" [ find where common-name="DigiCert Global Root CA" ];\r
-} on-error={ }
-:do {
+
:set CertName "DigiCert-Assured-ID-Root-CA.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="DigiCert-Assured-ID-Root-CA" [ find where common-name="DigiCert Assured ID Root CA" ];\r
-} on-error={ }
-:do {
+
:set CertName "DigiCert-Assured-ID-Root-G2.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="DigiCert-Assured-ID-Root-G2" [ find where common-name="DigiCert Assured ID Root G3" ];\r
-} on-error={ }
-:do {
+
:set CertName "DigiCert-Assured-ID-Root-G3.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="DigiCert-Assured-ID-Root-G3" [ find where common-name="DigiCert Assured ID Root G3" ];\r
-} on-error={ }
-:do {
+
:set CertName "DigiCert-Global-G2-TLS-RSA-SHA256-2020-CA1.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="DigiCert-Global-G2-TLS-RSA-SHA256-2020-CA1" [ find where common-name="DigiCert Global G2 TLS RSA SHA256 2020 CA1" ];\r
-} on-error={ }
-:do {
+
:set CertName "DigiCert-Global-G3-TLS-ECC-SHA384-2020-CA1.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="DigiCert-Global-G3-TLS-ECC-SHA384-2020-CA1" [ find where common-name="DigiCert Global G3 TLS ECC SHA384 2020 CA1" ];\r
-} on-error={ }
-:do {
+
:set CertName "DigiCert-Global-Root-G2.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="DigiCert-Global-Root-G2" [ find where common-name="DigiCert Global Root G2" ];\r
-} on-error={ }
-:do {
+
:set CertName "DigiCert-Global-Root-G3.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="DigiCert-Global-Root-G3" [ find where common-name="DigiCert Global Root G3" ];\r
-} on-error={ }
-:do {
+
:set CertName "DigiCert-TLS-ECC-P384-Root-G5.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="DigiCert-TLS-ECC-P384-Root-G5" [ find where common-name="DigiCert TLS ECC P384 Root G5" ];\r
-} on-error={ }
-:do {
+
:set CertName "DigiCert-TLS-RSA4096-Root-G5.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="DigiCert-TLS-RSA4096-Root-G5" [ find where common-name="DigiCert TLS RSA4096 Root G5" ];\r
-} on-error={ }
-:do {
+
:set CertName "DigiCert-Trusted-Root-G4.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="DigiCert-Trusted-Root-G4" [ find where common-name="DigiCert Trusted Root G4" ];\r
-} on-error={ }
-:do {
+
:set CertName "GTS-Root-R4.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="GTS-Root-R4" [ find where common-name="GTS Root R4" ];\r
-} on-error={ }
-:do {
+
:set CertName "Go-Daddy-Root-Certificate-Authority-G2.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="Go-Daddy-Root-Certificate-Authority-G2" [ find where common-name="Go Daddy Root Certificate Authority - G2" ];\r
-} on-error={ }
-:do {
+
:set CertName "ISRG-Root-X1.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="ISRG-Root-X1" [ find where common-name="ISRG Root X1" ];\r
-} on-error={ }
-:do {
+
:set CertName "Root-YE.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="Root-YE" [ find where common-name="Root YE" ];\r
-} on-error={ }
-:do {
+
:set CertName "Starfield-Root-Certificate-Authority-G2.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="Starfield-Root-Certificate-Authority-G2" [ find where common-name="Starfield Root Certificate Authority - G2" ];\r
-} on-error={ }
-:do {
+
:set CertName "USERTrust-RSA-Certification-Authority.pem";\r
/tool/fetch mode=https url=($CertUrl . $CertName);\r
/certificate/import file-name=$CertName passphrase="";\r
/certificate/set name="USERTrust-RSA-Certification-Authority" [ find where common-name="USERTrust RSA Certification Authority" ];\r
-} on-error={ }
-:global tmpAddCerts (a);\r
-\r
+ :global tmpAddCerts (a);\r
+
+} do={
+ :global ExitError; $ExitError $ExitOK [ :jobname ] $Err;
+}
+
#/certificate/import file-name=$CertName passphrase="";\r
#/certificate/import file-name=$CertName passphrase="";\r
#:set CertName "GTS-Root-RX.pem";\r
#:set CertName "ISRG-Root-X2.pem";\r
#/tool/fetch mode=https url=($AmScriptsUrl . "certs/" . $CertName);\r
#/certificate/import file-name=$CertName passphrase="";\r
-\r
-\r
+
+
#/ip/dns/set allow-remote-requests=yes doh-max-concurrent-queries=100 doh-max-server-connections=20 use-doh-server=https://security.cloudflare-dns.com/dns-query verify-doh-cert=yes;\r
#/ip/dns/static remove [find where address=1.1.1.1];\r
#/ip/dns/static add address=1.1.1.1 name=security.cloudflare-dns.com comment="cloudflare-dns IPv4 1";\r
#/ip dns static add address=2606:4700:4700::1001 name=security.cloudflare-dns.com type=AAAA\r
#/ip/dns set servers="1.0.0.1, 8.8.4.4";\r
#/ip/dns set servers="";
+
+# CloudFlare\r
+#/tool/fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem;\r
+#/certificate/import file-name=DigiCertGlobalRootCA.crt.pem passphrase="";\r
+#/tool/ fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt.pem;\r
+#/certificate/import file-name=DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt.pem passphrase="";\r
+# Quad9\r
+#/tool/fetch mode=https url="https://cacerts.digicert.com/DigiCertGlobalG3TLSECCSHA3842020CA1-1.crt.pem"\r
+#/certificate/import file-name=DigiCertGlobalG3TLSECCSHA3842020CA1-1.crt.pem passphrase="";\r