{"id":20717,"date":"2017-11-24T09:00:57","date_gmt":"2017-11-24T09:00:57","guid":{"rendered":"https:\/\/home.apeconsulting.co.uk\/adrian\/?p=20717"},"modified":"2017-11-24T09:56:37","modified_gmt":"2017-11-24T09:56:37","slug":"certbot-cron","status":"publish","type":"post","link":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/","title":{"rendered":"Certbot Cron &#8211; Automagically generate SSL certificates"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20720 size-medium\" title=\"certbot cron renew image\" src=\"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-content\/uploads\/sites\/2\/2017\/11\/crontab_installation-1-300x105.png\" alt=\"certbot cron renew image\" width=\"300\" height=\"105\" srcset=\"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-content\/uploads\/sites\/2\/2017\/11\/crontab_installation-1-300x105.png 300w, https:\/\/home.apeconsulting.co.uk\/adrian\/wp-content\/uploads\/sites\/2\/2017\/11\/crontab_installation-1-610x213.png 610w, https:\/\/home.apeconsulting.co.uk\/adrian\/wp-content\/uploads\/sites\/2\/2017\/11\/crontab_installation-1.png 670w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><br \/>\nI thought after the successful renewal of my certificates <a href=\"https:\/\/home.apeconsulting.co.uk\/adrian\/ssl-renewal\/\">here<\/a>, I&#8217;d set up a certbot <a href=\"https:\/\/en.wikipedia.org\/wiki\/Cron\">cron<\/a> task to run every day that should automagically renew any certificates due to expire within the next 30 days \ud83d\ude09<!--more--><\/p>\n<p>I&#8217;ve always struggled with using crontab on FreeBSD as it uses the vi editor. \u00a0I much prefer using nano, but for crontab, it&#8217;s better to just work with the default. \u00a0So the commands I used are:<\/p>\n<pre><span class=\"shell_ff shell_be\"># crontab -u root -e <em>(opens crontab)<\/em> \r\n<\/span><span class=\"shell_ff shell_be\"># i <em>(sets the editor into insert mode)<\/em> \r\n# 45 23 * * * certbot renew &gt;&gt; \/var\/log\/le-renew.log &amp;&amp; service nginx reload <em>(runs certbot renew at 23:45 every day and saves the output to \/var\/log\/le-renew.log and reloads Nginx service)<\/em> \r\n# [esc]:wq <em>(takes vi out of insert mode, and then saves and exits crontab)<\/em>\r\n# touch \/var\/log\/le-renew.log <em>(creates the log file to be saved to)<\/em><\/span><\/pre>\n<p>&nbsp;<\/p>\n<p><span class=\"shell_ff shell_be\">And that should be it. I checked the \/var\/log\/le-renew.log file the following day, and there was nothing there! \u00a0When I checked again, I&#8217;d created a log file named ls-renew.log, which explains why it didn&#8217;t work! \u00a0When I moved the file to the correct name, the following day it showed the certbot renew commands and that none of my certificates was due to renew. The next one should renew around the 25th November, so I&#8217;ll provide a further update then.<\/span><\/p>\n<p>By then I might have also figured out how to add a date and time to the command so the log file makes a bit more sense with multiple entries!<\/p>\n<p><span style=\"font-size: 14pt;\"><strong>UPDATE<\/strong><\/span> &#8211; I&#8217;ve actually been trying to include the date for a few days now, by creating a simple script file and then getting the cron\u00a0task to run the script. \u00a0The script was just:<\/p>\n<pre id=\"shell_output\" class=\"ix\" tabindex=\"1\"><span class=\"shell_ff shell_be\">#!\/bin\/sh \r\ntoday=$(date +%Y-%b-%d) \r\n<\/span><span class=\"shell_ff shell_bc\">e<\/span><span class=\"shell_ff shell_be\">cho $today &gt;&gt; \/var\/log\/le-renew.log \r\ncertbot renew &gt;&gt; \/var\/log\/le-renew.log \r\nservice nginx reload &gt;&gt; \/var\/log\/le-renew.log <\/span><\/pre>\n<p class=\"ix\" tabindex=\"1\"><span class=\"shell_ff shell_be\"><br \/>\n<\/span>but after trying various different options, I just can&#8217;t get it to add the date AND the certbot output. It will do one, or the other, but not both. It was starting to frustrate me as if I ran the script file inside the jail, it did what I was expecting, so I eventually tried to schedule it from within the FreeNAS WUI &#8211; jexec ssl_proxy sh \/le-renew.sh &#8211; rather than using cron. This worked fine, and at 23:50 every day the script runs and updates the date, certbot tasks and the NGINX reload into \/var\/log\/le-renew.log \ud83d\ude00 \u00a0So if you stumbled upon this blog trying to work out how to schedule certbot renewals using cron, I&#8217;m sorry as I&#8217;m not actually doing that now! \u00a0If you are using FreeNAS though, lucky you!!<\/p>\n<p class=\"ix\" tabindex=\"1\">There&#8217;s a further benefit of running it like this, in that FreeNAS sends a daily update with the results, so today it told me my emby cert had renewed automatically. \u00a0Result!<\/p>\n<div class=\"grammarly-disable-indicator\"><\/div>\n<div class=\"grammarly-disable-indicator\"><\/div>\n<div class=\"grammarly-disable-indicator\"><\/div>\n<div class=\"grammarly-disable-indicator\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>I thought after the successful renewal of my certificates here, I&#8217;d set up a certbot cron task to run every day that should automagically renew any certificates due to expire within the next 30 days \ud83d\ude09<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[19,2,9],"tags":[21],"class_list":["post-20717","post","type-post","status-publish","format-standard","hentry","category-freenas","category-it","category-server","tag-spellchecked"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Certbot Cron - Automagically generate SSL certificates - Adrian&#039;s Blog<\/title>\n<meta name=\"description\" content=\"I thought after the successful renewal of my certificates here, I&#039;d set up a certbot cron task which should automatically renew any certificates\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Certbot Cron - Automagically generate SSL certificates - Adrian&#039;s Blog\" \/>\n<meta property=\"og:description\" content=\"I thought after the successful renewal of my certificates here, I&#039;d set up a certbot cron task which should automatically renew any certificates\" \/>\n<meta property=\"og:url\" content=\"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/\" \/>\n<meta property=\"og:site_name\" content=\"Adrian&#039;s Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-11-24T09:00:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-11-24T09:56:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-content\/uploads\/sites\/2\/2017\/11\/crontab_installation-1-300x105.png\" \/>\n<meta name=\"author\" content=\"Adrian\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adrian\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/\"},\"author\":{\"name\":\"Adrian\",\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/#\\\/schema\\\/person\\\/f63f15ff50bb8f956afdd86a816c5d2a\"},\"headline\":\"Certbot Cron &#8211; Automagically generate SSL certificates\",\"datePublished\":\"2017-11-24T09:00:57+00:00\",\"dateModified\":\"2017-11-24T09:56:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/\"},\"wordCount\":404,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/#\\\/schema\\\/person\\\/f63f15ff50bb8f956afdd86a816c5d2a\"},\"image\":{\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2017\\\/11\\\/crontab_installation-1-300x105.png\",\"keywords\":[\"Checked\"],\"articleSection\":[\"FreeNAS\",\"IT\",\"Server\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/\",\"url\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/\",\"name\":\"Certbot Cron - Automagically generate SSL certificates - Adrian&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2017\\\/11\\\/crontab_installation-1-300x105.png\",\"datePublished\":\"2017-11-24T09:00:57+00:00\",\"dateModified\":\"2017-11-24T09:56:37+00:00\",\"description\":\"I thought after the successful renewal of my certificates here, I'd set up a certbot cron task which should automatically renew any certificates\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/#primaryimage\",\"url\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2017\\\/11\\\/crontab_installation-1.png\",\"contentUrl\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2017\\\/11\\\/crontab_installation-1.png\",\"width\":670,\"height\":234},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/certbot-cron\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Certbot Cron &#8211; Automagically generate SSL certificates\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/#website\",\"url\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/\",\"name\":\"Adrian&#039;s Blog\",\"description\":\"Ramblings of an IT Geek\",\"publisher\":{\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/#\\\/schema\\\/person\\\/f63f15ff50bb8f956afdd86a816c5d2a\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/home.apeconsulting.co.uk\\\/adrian\\\/#\\\/schema\\\/person\\\/f63f15ff50bb8f956afdd86a816c5d2a\",\"name\":\"Adrian\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c2e5d9012573aedee25fd68deb071781d974af50ae74bf73aeb0e70433f7390c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c2e5d9012573aedee25fd68deb071781d974af50ae74bf73aeb0e70433f7390c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c2e5d9012573aedee25fd68deb071781d974af50ae74bf73aeb0e70433f7390c?s=96&d=mm&r=g\",\"caption\":\"Adrian\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c2e5d9012573aedee25fd68deb071781d974af50ae74bf73aeb0e70433f7390c?s=96&d=mm&r=g\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Certbot Cron - Automagically generate SSL certificates - Adrian&#039;s Blog","description":"I thought after the successful renewal of my certificates here, I'd set up a certbot cron task which should automatically renew any certificates","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/","og_locale":"en_GB","og_type":"article","og_title":"Certbot Cron - Automagically generate SSL certificates - Adrian&#039;s Blog","og_description":"I thought after the successful renewal of my certificates here, I'd set up a certbot cron task which should automatically renew any certificates","og_url":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/","og_site_name":"Adrian&#039;s Blog","article_published_time":"2017-11-24T09:00:57+00:00","article_modified_time":"2017-11-24T09:56:37+00:00","og_image":[{"url":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-content\/uploads\/sites\/2\/2017\/11\/crontab_installation-1-300x105.png","type":"","width":"","height":""}],"author":"Adrian","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Adrian","Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/#article","isPartOf":{"@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/"},"author":{"name":"Adrian","@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/#\/schema\/person\/f63f15ff50bb8f956afdd86a816c5d2a"},"headline":"Certbot Cron &#8211; Automagically generate SSL certificates","datePublished":"2017-11-24T09:00:57+00:00","dateModified":"2017-11-24T09:56:37+00:00","mainEntityOfPage":{"@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/"},"wordCount":404,"commentCount":0,"publisher":{"@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/#\/schema\/person\/f63f15ff50bb8f956afdd86a816c5d2a"},"image":{"@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/#primaryimage"},"thumbnailUrl":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-content\/uploads\/sites\/2\/2017\/11\/crontab_installation-1-300x105.png","keywords":["Checked"],"articleSection":["FreeNAS","IT","Server"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/","url":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/","name":"Certbot Cron - Automagically generate SSL certificates - Adrian&#039;s Blog","isPartOf":{"@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/#website"},"primaryImageOfPage":{"@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/#primaryimage"},"image":{"@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/#primaryimage"},"thumbnailUrl":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-content\/uploads\/sites\/2\/2017\/11\/crontab_installation-1-300x105.png","datePublished":"2017-11-24T09:00:57+00:00","dateModified":"2017-11-24T09:56:37+00:00","description":"I thought after the successful renewal of my certificates here, I'd set up a certbot cron task which should automatically renew any certificates","breadcrumb":{"@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/#primaryimage","url":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-content\/uploads\/sites\/2\/2017\/11\/crontab_installation-1.png","contentUrl":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-content\/uploads\/sites\/2\/2017\/11\/crontab_installation-1.png","width":670,"height":234},{"@type":"BreadcrumbList","@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/certbot-cron\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/home.apeconsulting.co.uk\/adrian\/"},{"@type":"ListItem","position":2,"name":"Certbot Cron &#8211; Automagically generate SSL certificates"}]},{"@type":"WebSite","@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/#website","url":"https:\/\/home.apeconsulting.co.uk\/adrian\/","name":"Adrian&#039;s Blog","description":"Ramblings of an IT Geek","publisher":{"@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/#\/schema\/person\/f63f15ff50bb8f956afdd86a816c5d2a"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/home.apeconsulting.co.uk\/adrian\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/home.apeconsulting.co.uk\/adrian\/#\/schema\/person\/f63f15ff50bb8f956afdd86a816c5d2a","name":"Adrian","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/c2e5d9012573aedee25fd68deb071781d974af50ae74bf73aeb0e70433f7390c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c2e5d9012573aedee25fd68deb071781d974af50ae74bf73aeb0e70433f7390c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c2e5d9012573aedee25fd68deb071781d974af50ae74bf73aeb0e70433f7390c?s=96&d=mm&r=g","caption":"Adrian"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/c2e5d9012573aedee25fd68deb071781d974af50ae74bf73aeb0e70433f7390c?s=96&d=mm&r=g"}}]}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p90DI4-5o9","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-json\/wp\/v2\/posts\/20717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-json\/wp\/v2\/comments?post=20717"}],"version-history":[{"count":18,"href":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-json\/wp\/v2\/posts\/20717\/revisions"}],"predecessor-version":[{"id":20871,"href":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-json\/wp\/v2\/posts\/20717\/revisions\/20871"}],"wp:attachment":[{"href":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-json\/wp\/v2\/media?parent=20717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-json\/wp\/v2\/categories?post=20717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/home.apeconsulting.co.uk\/adrian\/wp-json\/wp\/v2\/tags?post=20717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}