{"id":142,"date":"2018-05-14T09:49:50","date_gmt":"2018-05-14T01:49:50","guid":{"rendered":"http:\/\/blog.qiaogen.com\/?p=142"},"modified":"2018-05-14T09:49:50","modified_gmt":"2018-05-14T01:49:50","slug":"openwrt-howtos-ssl-and-certificates-in-wget","status":"publish","type":"post","link":"https:\/\/www.sangqiao.com\/blog\/archives\/142","title":{"rendered":"OpenWrt HOWTOs \u00bb SSL and Certificates in wget"},"content":{"rendered":"<h2 id=\"ssl_and_certificates_in_wget\" class=\"sectionedit1\">SSL and Certificates in wget<\/h2>\n<div class=\"level2\">\n<p>This is a short tutorial on how to make wget (with libSSL) accept trusted certificate authorities. Without trusted certificate authorities, any party can pretend to be the site wget tries to contact. In addition to proving the server on the other end is who it says it is, using SSL means encryption will protect the request while in transit, e.g. a DDNS password.<\/p>\n<p><em>Note: This probably won&#8217;t work for wget(matrixtunnel) and it can&#8217;t work for wget(nossl) because wget looks for the certificates in a libSSL dependand way. Please add information for other flavors of wget.<\/em><\/p>\n<\/div>\n<h3 id=\"a_caveat\" class=\"sectionedit2\">A Caveat<\/h3>\n<div class=\"level3\">\n<p>With the release of wget 1.13 in August 2011 this section is most probably outdated.<\/p>\n<p>There is a known bug (<a class=\"urlextern\" title=\"http:\/\/bugs.debian.org\/cgi-bin\/bugreport.cgi?bug=409938\" href=\"http:\/\/bugs.debian.org\/cgi-bin\/bugreport.cgi?bug=409938\" rel=\"nofollow\">here<\/a>,\u00a0<a class=\"urlextern\" title=\"https:\/\/savannah.gnu.org\/bugs\/?20421\" href=\"https:\/\/savannah.gnu.org\/bugs\/?20421\" rel=\"nofollow\">here<\/a>,\u00a0<a class=\"urlextern\" title=\"https:\/\/savannah.gnu.org\/bugs\/?23934\" href=\"https:\/\/savannah.gnu.org\/bugs\/?23934\" rel=\"nofollow\">and here<\/a>) in wget 1.12 which prevents successful SSL connections to many sites. Dyndns.com is one such site, wget reports:\u00a0<code>ERROR: certificate common name `*.dyndns.com' doesn't match requested host name `dyndns.com'.<br \/>\nTo connect to dyndns.com insecurely, use `\u2013no-check-certificate'.<\/code><\/p>\n<p><del>The bug has been fixed, but wget hasn&#8217;t had a release since 22-Sep-2009. As of 16-Mar-2011,\u00a0<a class=\"urlextern\" title=\"http:\/\/lists.gnu.org\/archive\/html\/bug-wget\/2011-03\/msg00015.html\" href=\"http:\/\/lists.gnu.org\/archive\/html\/bug-wget\/2011-03\/msg00015.html\" rel=\"nofollow\">it looks like<\/a>\u00a0a new version of wget will be released &#8220;soon&#8221;, which will contain this patch.<\/del>\u00a0wget (1.13.4-1) is now available in the OpenWRT repositories.<\/p>\n<\/div>\n<h3 id=\"install_wget_with_ssl\" class=\"sectionedit3\">Install wget (with SSL)<\/h3>\n<div class=\"level3\">\n<p>The default wget in OpenWRT is provided by Busybox, which does not support SSL. If you want to use SSL (https) URLs, you can install the real wget:<\/p>\n<pre class=\"code\">opkg update\r\nopkg install wget<\/pre>\n<p>\/usr\/bin\/wget points now to the full version.<\/p><\/div>\n<h3 id=\"certificate_directory\" class=\"sectionedit4\">Certificate Directory<\/h3>\n<div class=\"level3\">\n<ol>\n<li class=\"level1\">\n<div class=\"li\">Create the wget\/libSSL certificate directory:<\/p>\n<pre class=\"code bash\"><span class=\"kw2\">mkdir<\/span> <span class=\"re5\">-p<\/span> <span class=\"sy0\">\/<\/span>etc<span class=\"sy0\">\/<\/span>ssl<span class=\"sy0\">\/<\/span>certs<\/pre>\n<\/div>\n<\/li>\n<li class=\"level1\">\n<div class=\"li\">So wget knows where to look, update\u00a0<code>\/etc\/profile<\/code>\u00a0and add the line:<\/p>\n<pre class=\"code bash\"><span class=\"kw3\">export<\/span> <span class=\"re2\">SSL_CERT_DIR<\/span>=<span class=\"sy0\">\/<\/span>etc<span class=\"sy0\">\/<\/span>ssl<span class=\"sy0\">\/<\/span>certs<\/pre>\n<\/div>\n<\/li>\n<li class=\"level1\">\n<div class=\"li\">Update shell:<\/p>\n<pre class=\"code bash\"><span class=\"kw3\">source<\/span> <span class=\"sy0\">\/<\/span>etc<span class=\"sy0\">\/<\/span>profile<\/pre>\n<\/div>\n<\/li>\n<li class=\"level1\">\n<div class=\"li\">you can also use\u00a0<code>\/etc\/ssl\/certs<\/code>\u00a0directory with\u00a0<code>curl \u2013capath<\/code><\/div>\n<\/li>\n<\/ol>\n<p>Note: if you need SSL in your DDNS client, look also here\u00a0<a class=\"wikilink1\" title=\"doc:howto:ddns.client\" href=\"https:\/\/wiki.openwrt.org\/doc\/howto\/ddns.client#usingwget\">using.wget<\/a><\/p>\n<\/div>\n<h3 id=\"adding_root_certificates\" class=\"sectionedit5\">Adding root certificates<\/h3>\n<div class=\"level3\">\n<p>Most browsers\/distributions\/etc ship with root certificates from the major Certificate Authorities, such as VeriSign and GeoTrust. Root certificates are used to validate the certificates presented by servers. OpenWRT does not include root certificates, so it is up to you to install them.<\/p>\n<\/div>\n<h4 id=\"adding_certificates_through_opkg\" class=\"sectionedit6\">Adding certificates through opkg<\/h4>\n<div class=\"level4\">\n<p>You can use opkg to install the certificates from the major CA<\/p>\n<pre class=\"code\">opkg install ca-certificates<\/pre>\n<p>Now you have the major root certificates installed in \/etc\/ssl\/certs<\/p><\/div>\n<h4 id=\"adding_certificates_manually\" class=\"sectionedit7\">Adding certificates manually<\/h4>\n<div class=\"level4\">\n<p>Let say we want to install the root certificate authority for dyndns.org. The domain\u00a0<a class=\"urlextern\" title=\"https:\/\/members.dyndns.org\" href=\"https:\/\/members.dyndns.org\/\" rel=\"nofollow\">https:\/\/members.dyndns.org<\/a>\u00a0is signed by the\u00a0<del><a class=\"urlextern\" title=\"http:\/\/www.geotrust.com\/resources\/root_certificates\/certificates\/Equifax_Secure_Certificate_Authority.cer\" href=\"http:\/\/www.geotrust.com\/resources\/root_certificates\/certificates\/Equifax_Secure_Certificate_Authority.cer\" rel=\"nofollow\">&#8220;Equifax&#8221; root certificate<\/a><\/del>. We need to download the root certificate, then place it in the certificate directory. Certificates in \/etc\/ssl\/certs must be named after their hash value so that they can be found.<\/p>\n<p>It is easier to find the root certificate with any modern web browser (e.g. firefox) by opening the site with https, viewing the certificate and exporting it from the browser to a pem or base64 cer file. Using openssl s_client allows for easy downloading of the remote server&#8217;s SSL certificate chain. You should verify the chain you get with another source such as your web browser.<\/p>\n<p>The first step is installing\u00a0<code>openssl-util<\/code>:<\/p>\n<pre class=\"code\">opkg install openssl-util<\/pre>\n<p>Now you can use either the manual method or the add-cert.sh script below to install certs into \/etc\/ssl\/certs. Make sure to use openssl from the OpenWrt device because if you try this from your linux PC, you may get a completely different hash for the same exact certificate due to a difference in the version of openssl.<\/p>\n<div class=\"table sectionedit8\">\n<table class=\"inline\">\n<thead>\n<tr class=\"row0\">\n<th class=\"col0\">shell prompt<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row1\">\n<td class=\"col0\">\n<pre class=\"code bash\"><span class=\"kw3\">cd<\/span> <span class=\"sy0\">\/<\/span>etc<span class=\"sy0\">\/<\/span>ssl<span class=\"sy0\">\/<\/span>certs\r\nopenssl s_client <span class=\"re5\">-connect<\/span> members.dyndns.org:<span class=\"nu0\">443<\/span> <span class=\"sy0\">&lt;<\/span> <span class=\"sy0\">\/<\/span>dev<span class=\"sy0\">\/<\/span>null <span class=\"sy0\">&gt;<\/span> temporary.out\r\nopenssl x509 <span class=\"re5\">-outform<\/span> PEM <span class=\"sy0\">&lt;<\/span> temporary.out <span class=\"sy0\">&gt;<\/span> members.dyndns.org.cer\r\n\u00a0\r\n\u00a0\r\n<span class=\"co0\">##### create link using the hash value from openssl #####<\/span>\r\n<span class=\"co0\"># store certificate hash value in HASH append .0<\/span>\r\n<span class=\"re2\">HASH<\/span>=<span class=\"sy0\">`<\/span>openssl x509 <span class=\"re5\">-hash<\/span> <span class=\"re5\">-noout<\/span> <span class=\"re5\">-in<\/span> members.dyndns.org.cer<span class=\"sy0\">`<\/span>.0\r\n\u00a0\r\n<span class=\"co0\"># create link<\/span>\r\n<span class=\"kw2\">ln<\/span> <span class=\"re5\">-s<\/span> members.dyndns.org.cer <span class=\"re1\">$HASH<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><em>Note: If another cert has the same hash use suffix\u00a0<code>.1<\/code>\u00a0or\u00a0<code>.2<\/code>\u00a0instead of\u00a0<code>.0<\/code>. To see the hash value type\u00a0<code>echo $HASH<\/code>.<\/em><\/p>\n<\/div>\n<h4 id=\"adding_certificates_with_add-certsh\" class=\"sectionedit9\">Adding certificates with add-cert.sh<\/h4>\n<div class=\"level4\">\n<p>Place this script in a file named add-cert.sh, using an editor like vi or nano (if installed). &#8220;chmod +x add-cert.sh&#8220; to mark it executable, then use it like this:<\/p>\n<pre class=\"code\">wget example.com\/certificate.cer\r\n.\/add-cert.sh certificate.cer<\/pre>\n<div class=\"table sectionedit10\">\n<table class=\"inline\">\n<thead>\n<tr class=\"row0\">\n<th class=\"col0\">add-cert.sh<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row1\">\n<td class=\"col0\">\n<pre class=\"code bash\"><span class=\"co0\">#!\/bin\/sh<\/span>\r\n<span class=\"co0\"># author: joda<\/span>\r\n<span class=\"re2\">openssl<\/span>=<span class=\"sy0\">\/<\/span>usr<span class=\"sy0\">\/<\/span>bin<span class=\"sy0\">\/<\/span>openssl\r\n<span class=\"re2\">certdir<\/span>=<span class=\"re1\">$SSL_CERT_DIR<\/span>\r\n<span class=\"kw1\">if<\/span> <span class=\"br0\">[<\/span> <span class=\"sy0\">!<\/span> <span class=\"re5\">-f<\/span> <span class=\"re1\">$openssl<\/span> <span class=\"br0\">]<\/span>; <span class=\"kw1\">then<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"st0\">\"ERROR: Can't find <span class=\"es2\">$openssl<\/span>. openssl-util installed?\"<\/span> <span class=\"sy0\">&gt;&amp;<\/span><span class=\"nu0\">2<\/span>\r\n<span class=\"kw1\">fi<\/span>\r\n<span class=\"kw1\">if<\/span> <span class=\"br0\">[<\/span><span class=\"br0\">[<\/span> <span class=\"st0\">\"$1\"<\/span> = <span class=\"st0\">\"-f\"<\/span> <span class=\"br0\">]<\/span><span class=\"br0\">]<\/span>; <span class=\"kw1\">then<\/span>\r\n   <span class=\"re2\">overwrite<\/span>=<span class=\"nu0\">1<\/span>\r\n   <span class=\"kw3\">shift<\/span> <span class=\"co0\"># remove $1<\/span>\r\n<span class=\"kw1\">fi<\/span>\r\n\u00a0\r\n<span class=\"kw1\">if<\/span> <span class=\"br0\">[<\/span> <span class=\"re5\">-f<\/span> <span class=\"st0\">\"$1\"<\/span> <span class=\"br0\">]<\/span>; <span class=\"kw1\">then<\/span>\r\n  <span class=\"re2\">certfile<\/span>=<span class=\"re4\">$1<\/span>\r\n  <span class=\"re2\">certname<\/span>=<span class=\"sy0\">`<\/span><span class=\"kw2\">basename<\/span> <span class=\"re1\">$certfile<\/span><span class=\"sy0\">`<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"st0\">\"Certificate <span class=\"es2\">$certname<\/span>\"<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"st0\">\"  copy to <span class=\"es2\">$certdir<\/span>\"<\/span>\r\n  <span class=\"kw1\">if<\/span> <span class=\"br0\">[<\/span> <span class=\"st0\">\"1\"<\/span> <span class=\"re5\">-ne<\/span> <span class=\"st0\">\"<span class=\"es2\">$overwrite<\/span>\"<\/span> <span class=\"br0\">]<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"br0\">[<\/span> <span class=\"re5\">-f<\/span> <span class=\"st0\">\"<span class=\"es2\">$certdir<\/span>\/<span class=\"es2\">$certname<\/span>\"<\/span> <span class=\"br0\">]<\/span>; <span class=\"kw1\">then<\/span>\r\n    <span class=\"kw3\">echo<\/span> <span class=\"sy0\">&gt;&amp;<\/span><span class=\"nu0\">2<\/span>\r\n    <span class=\"kw3\">echo<\/span> <span class=\"st0\">\"ERROR: certificate <span class=\"es2\">$certname<\/span> exists\"<\/span> <span class=\"sy0\">&gt;&amp;<\/span><span class=\"nu0\">2<\/span>\r\n    <span class=\"kw3\">exit<\/span> <span class=\"nu0\">2<\/span>;\r\n  <span class=\"kw1\">fi<\/span>\r\n  <span class=\"kw2\">cp<\/span> <span class=\"st0\">\"$1\"<\/span> <span class=\"st0\">\"<span class=\"es2\">$certdir<\/span>\/<span class=\"es2\">$certname<\/span>\"<\/span>\r\n\u00a0\r\n  <span class=\"co0\"># create symbolic link from hash<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"re5\">-n<\/span> <span class=\"st0\">\"  generating hash: \"<\/span>\r\n  <span class=\"re2\">HASH<\/span>=<span class=\"sy0\">`<\/span><span class=\"re1\">$openssl<\/span> x509 <span class=\"re5\">-hash<\/span> <span class=\"re5\">-noout<\/span> <span class=\"re5\">-in<\/span> <span class=\"re1\">$certfile<\/span><span class=\"sy0\">`<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"st0\">\"<span class=\"es2\">$HASH<\/span>\"<\/span>\r\n\u00a0\r\n  <span class=\"co0\"># handle hash collisions<\/span>\r\n  <span class=\"re2\">suffix<\/span>=<span class=\"nu0\">0<\/span>\r\n  <span class=\"kw1\">while<\/span> <span class=\"br0\">[<\/span> <span class=\"st0\">\"1\"<\/span> <span class=\"re5\">-ne<\/span> <span class=\"st0\">\"<span class=\"es2\">$overwrite<\/span>\"<\/span> <span class=\"br0\">]<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"br0\">[<\/span> <span class=\"re5\">-h<\/span> <span class=\"st0\">\"<span class=\"es2\">$certdir<\/span>\/<span class=\"es2\">$HASH<\/span>.<span class=\"es2\">$suffix<\/span>\"<\/span> <span class=\"br0\">]<\/span>; <span class=\"kw1\">do<\/span>\r\n    <span class=\"kw3\">let<\/span> <span class=\"st0\">\"suffix += 1\"<\/span>\r\n  <span class=\"kw1\">done<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"st0\">\"  linking <span class=\"es2\">$HASH<\/span>.<span class=\"es2\">$suffix<\/span> -&gt; <span class=\"es2\">$certname<\/span>\"<\/span>\r\n  <span class=\"kw1\">if<\/span> <span class=\"br0\">[<\/span> <span class=\"re1\">$overwrite<\/span> <span class=\"br0\">]<\/span>; <span class=\"kw1\">then<\/span>\r\n    <span class=\"kw2\">ln<\/span> <span class=\"re5\">-sf<\/span> <span class=\"st0\">\"<span class=\"es2\">$certname<\/span>\"<\/span> <span class=\"st0\">\"<span class=\"es2\">$certdir<\/span>\/<span class=\"es2\">$HASH<\/span>.<span class=\"es2\">$suffix<\/span>\"<\/span>\r\n  <span class=\"kw1\">else<\/span>\r\n    <span class=\"kw2\">ln<\/span> <span class=\"re5\">-s<\/span> <span class=\"st0\">\"<span class=\"es2\">$certname<\/span>\"<\/span> <span class=\"st0\">\"<span class=\"es2\">$certdir<\/span>\/<span class=\"es2\">$HASH<\/span>.<span class=\"es2\">$suffix<\/span>\"<\/span>\r\n  <span class=\"kw1\">fi<\/span>\r\n<span class=\"kw1\">else<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"sy0\">&gt;&amp;<\/span><span class=\"nu0\">2<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"st0\">\"ERROR: file does not exist $1\"<\/span> <span class=\"sy0\">&gt;&amp;<\/span><span class=\"nu0\">2<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"sy0\">&gt;&amp;<\/span><span class=\"nu0\">2<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"st0\">\"This script adds (root) certificates for wget(ssl) to <span class=\"es2\">$certdir<\/span>.\"<\/span> <span class=\"sy0\">&gt;&amp;<\/span><span class=\"nu0\">2<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"st0\">\"SYNTAX: <span class=\"es5\">`basename $0`<\/span> [Options] [x509-certificate]\"<\/span> <span class=\"sy0\">&gt;&amp;<\/span><span class=\"nu0\">2<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"sy0\">&gt;&amp;<\/span><span class=\"nu0\">2<\/span>\r\n  <span class=\"kw3\">echo<\/span> <span class=\"st0\">\"Option: -f      force overwriting if certificate exists\"<\/span> <span class=\"sy0\">&gt;&amp;<\/span><span class=\"nu0\">2<\/span>\r\n<span class=\"kw1\">fi<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2 id=\"trouble_shooting\" class=\"sectionedit11\">Trouble Shooting<\/h2>\n<div class=\"level2\"><\/div>\n<h3 id=\"backfire_103_conflictusrbinwgetbinbusybox_blocks_wget\" class=\"sectionedit12\">Backfire 10.3 Conflict: \/usr\/bin\/wget -&gt; \/bin\/busybox blocks wget<\/h3>\n<div class=\"level3\">\n<p>Solution: Move old wget until new wget is installed (&#8220;opkg install&#8221; needs wget)<\/p>\n<p>Using SSH\/Telnet shell:<\/p>\n<div class=\"table sectionedit13\">\n<table class=\"inline\">\n<thead>\n<tr class=\"row0\">\n<th class=\"col0\">shell prompt<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row1\">\n<td class=\"col0\">\n<pre class=\"code bash\"><span class=\"kw2\">ln<\/span> <span class=\"re5\">-sf<\/span> <span class=\"sy0\">\/<\/span>bin<span class=\"sy0\">\/<\/span>busybox <span class=\"sy0\">\/<\/span>bin<span class=\"sy0\">\/<\/span><span class=\"kw2\">wget<\/span>\r\n<span class=\"kw2\">rm<\/span> <span class=\"sy0\">\/<\/span>usr<span class=\"sy0\">\/<\/span>bin<span class=\"sy0\">\/<\/span><span class=\"kw2\">wget<\/span>\r\nopkg <span class=\"kw2\">install<\/span> <span class=\"kw2\">wget<\/span>\r\n<span class=\"kw2\">rm<\/span> <span class=\"sy0\">\/<\/span>bin<span class=\"sy0\">\/<\/span><span class=\"kw2\">wget<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u2014\u00a0<em><a class=\"wikilink2\" title=\"doc:howto:joda\" href=\"https:\/\/wiki.openwrt.org\/doc\/howto\/joda\" rel=\"nofollow\">joda<\/a>\u00a02010\/06\/19 20:57<\/em><\/p>\n<\/div>\n<h3 id=\"confirm_wget_ssl_root\" class=\"sectionedit14\">Confirm wget SSL root<\/h3>\n<div class=\"level3\">\n<p>Example: wget\u00a0<a class=\"urlextern\" title=\"https:\/\/members.dyndns.org\/\" href=\"https:\/\/members.dyndns.org\/\" rel=\"nofollow\">https:\/\/members.dyndns.org\/<\/a><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<p>\u5168\u6587\u8f6c\u81ea\uff1ahttps:\/\/wiki.openwrt.org\/doc\/howto\/wget-ssl-certs<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SSL and Certificates in wget This is a short tutorial o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.sangqiao.com\/blog\/wp-json\/wp\/v2\/posts\/142"}],"collection":[{"href":"https:\/\/www.sangqiao.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sangqiao.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sangqiao.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sangqiao.com\/blog\/wp-json\/wp\/v2\/comments?post=142"}],"version-history":[{"count":1,"href":"https:\/\/www.sangqiao.com\/blog\/wp-json\/wp\/v2\/posts\/142\/revisions"}],"predecessor-version":[{"id":143,"href":"https:\/\/www.sangqiao.com\/blog\/wp-json\/wp\/v2\/posts\/142\/revisions\/143"}],"wp:attachment":[{"href":"https:\/\/www.sangqiao.com\/blog\/wp-json\/wp\/v2\/media?parent=142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sangqiao.com\/blog\/wp-json\/wp\/v2\/categories?post=142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sangqiao.com\/blog\/wp-json\/wp\/v2\/tags?post=142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}