<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Xen Orchestra from source with Let&#x27;s Encrypt certificates]]></title><description><![CDATA[<p dir="auto">Using CA issued certificates on Xen Orchestra from source (xo) improves security and browser compatibility. Creating Let's Encrypt (LE) certificates for Xen Orchestra is simple using pfsense with the acme plugin. It is a two-step process controlled by the acme plugin on pfsense:</p>
<ol>
<li>request/renew LE certificates</li>
<li>copy certificates to xo and restart the xo-server</li>
</ol>
<p dir="auto">The acme plugin offers several methods for step 1.  I am using the Webroot FTP method because I do not want to expose services to the internet and my domain provider (Strato AG) does not offer DNS and/or API based LE support.<br />
Step 2 is the same for all methods in this example. With key-based authentication a ssh user (e.g. <code>acme</code>) will copy LE certificates from pfsense to xo and restart the xo-server</p>
<p dir="auto">For this post I skip step 1 since it highly depends on your situation, but if acme has been setup correctly you end up with domain specific LE certificates in the <code>/conf/acme/</code> folder on pfsense. <code>xo.myplaylab.net</code> is my Xen Orchestra from source VM and xo.myplaylab.net.key and xo.myplaylab.net.crt are the LE certificates from step 1.<br />
Step 2 needs some preparation before the acme plugin can automate this step.</p>
<p dir="auto">Prepare Xen Orchestra from source to receive certificates from pfsense</p>
<ul>
<li>create user <code>acme</code> on <code>xo.myplaylab.net</code></li>
<li>make <code>acme</code> member of sudo</li>
<li>limit <code>acme</code> sudo rights to restart xo-server only</li>
<li>create certificate folder on xo (e.g. <code>/etc/acme/ssl</code>)</li>
<li>change folder owner to acme</li>
<li>optional: make xo-servers non-privileged user member of acme if not run as 'root'.</li>
</ul>
<p dir="auto">Prepare pfsense to send certificates to xo via ssh</p>
<ul>
<li>setup key-based ssh connection on pfsense to ssh into xo</li>
<li>copy ssh-keys to xo for user <code>acme@xo.myplaylab.net</code> using <code>ssh-copy-id</code></li>
<li>ssh into xo with user <code>acme@xo.myplaylab.net</code> and complete process</li>
<li>check that you can scp the certificates from pfsense to the certification folder on xo</li>
<li>check that you can ssh into xo from pfsense and restart the xo-server</li>
<li>these manual tasks will later be executed by the acme plugin.</li>
</ul>
<p dir="auto">Prepare Xen Orchestra to use the LE certificates</p>
<ul>
<li>make sure that the certificates have been copied to <code>/etc/acme/ssl</code></li>
<li>edit <code>/opt/xen-orchestra/packages/xo-server/.xo-server.toml</code> (maybe not the right file <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f914.png?v=c63c1619ba5" class="not-responsive emoji emoji-android emoji--thinking_face" style="height:23px;width:auto;vertical-align:middle" title=":thinking_face:" alt="🤔" /> )</li>
<li>uncomment [[http.listen]] and port = 443 in the Basic HTTPS section</li>
<li>uncomment and change cert to <code>cert = '/etc/acme/ssl/xo.myplaylab.net.crt'</code></li>
<li>uncomment and change key to <code>key = '/etc/acme/ssl/xo.myplaylab.net.key'</code></li>
<li>uncomment redirectToHttps = true</li>
<li>restart xo-server and check the status</li>
</ul>
<p dir="auto">The final step is to add the shell commands to the <code>xo.myplaylab.net</code> acme configuration. Edit the configuration on pfsense and add the shell commands to the action list.</p>
<ul>
<li><code>scp /conf/acme/xo.myplaylab.net.crt /conf/acme/xo.myplaylab.net.key acme@xo.myplaylab.net:/etc/acme/ssl/</code></li>
<li><code>ssh acme@xo.myplaylab.net "sudo /bin/systemctl restart xo-server"</code></li>
</ul>
<p dir="auto">Did a complete rewrite to be more clear on the interaction between pfsense and xo.</p>
]]></description><link>https://xcp-ng.org/forum/topic/3775/xen-orchestra-from-source-with-let-s-encrypt-certificates</link><generator>RSS for Node</generator><lastBuildDate>Mon, 09 Mar 2026 23:47:05 GMT</lastBuildDate><atom:link href="https://xcp-ng.org/forum/topic/3775.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 31 Oct 2020 14:54:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Mon, 22 Jul 2024 21:12:50 GMT]]></title><description><![CDATA[<p dir="auto">Having XO from source or XOA act as a certification authority for the XCP-ng hosts is for sure a good approach. Would be great if that could include the VMs running on the XCP-ng hosts, which is my main goal (apart from being able to HTTPS into XO from source of course).</p>
]]></description><link>https://xcp-ng.org/forum/post/80637</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/80637</guid><dc:creator><![CDATA[gskger]]></dc:creator><pubDate>Mon, 22 Jul 2024 21:12:50 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Mon, 22 Jul 2024 20:09:56 GMT]]></title><description><![CDATA[<p dir="auto">The real solution will be to get XOA as a certification authority and then manage all XCP-ng's hosts certs <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=c63c1619ba5" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>https://xcp-ng.org/forum/post/80632</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/80632</guid><dc:creator><![CDATA[olivierlambert]]></dc:creator><pubDate>Mon, 22 Jul 2024 20:09:56 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Mon, 22 Jul 2024 19:02:25 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/kevdog" aria-label="Profile: kevdog">@<bdi>kevdog</bdi></a> Internal server can not be reached from the internet (no port forwarding so no HTTP challenge) and my hosting provider does not have an API for DNS challenges. Thats why I use pfSense "on the edge" at the moment. I admit that a cheap VPS runing <a href="http://acme.sh" target="_blank" rel="noopener noreferrer nofollow ugc">acme.sh</a> could do the trick, but my automation works and I am lazy <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f607.png?v=c63c1619ba5" class="not-responsive emoji emoji-android emoji--innocent" style="height:23px;width:auto;vertical-align:middle" title=":innocent:" alt="😇" /> .</p>
]]></description><link>https://xcp-ng.org/forum/post/80628</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/80628</guid><dc:creator><![CDATA[gskger]]></dc:creator><pubDate>Mon, 22 Jul 2024 19:02:25 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Sun, 21 Jul 2024 19:57:29 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/fohdeesha" aria-label="Profile: fohdeesha">@<bdi>fohdeesha</bdi></a> Does a HUP signal reload the config? Can it also check for updated certs?</p>
<p dir="auto">It's not a restart it's just a config change check.</p>
]]></description><link>https://xcp-ng.org/forum/post/80574</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/80574</guid><dc:creator><![CDATA[Andrew]]></dc:creator><pubDate>Sun, 21 Jul 2024 19:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Sun, 21 Jul 2024 19:50:26 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/gskger" aria-label="Profile: gskger">@<bdi>gskger</bdi></a> Why don't you install <a href="http://acme.sh" target="_blank" rel="noopener noreferrer nofollow ugc">acme.sh</a> or something similar on XO host and deploy from there.  No need to use pfSense.</p>
]]></description><link>https://xcp-ng.org/forum/post/80573</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/80573</guid><dc:creator><![CDATA[kevdog]]></dc:creator><pubDate>Sun, 21 Jul 2024 19:50:26 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Tue, 15 Feb 2022 06:41:36 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/fohdeesha" aria-label="Profile: fohdeesha">@<bdi>fohdeesha</bdi></a> good to know, thank you. Maybe setting some xo flag through cli telling xo-server to restart when convinient might be a way to automate the process of cert updates?</p>
]]></description><link>https://xcp-ng.org/forum/post/46823</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/46823</guid><dc:creator><![CDATA[gskger]]></dc:creator><pubDate>Tue, 15 Feb 2022 06:41:36 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Tue, 15 Feb 2022 04:19:50 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/stevewest15" aria-label="Profile: stevewest15">@<bdi>stevewest15</bdi></a> those instructions will not work as XOA is running on node and does not have a physical "web root" folder like you are thinking of. Also <a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/gskger" aria-label="Profile: gskger">@<bdi>gskger</bdi></a> please be cautious about scheduling xo-server restarts, doing so interrupts and breaks any task xo-server is running at that time, like backups etc. I believe this is one of the main reasons we haven't implemented let's encrypt integration into XOA, it's not as simple as just firing off an xo-server restart everytime LE certs are updated - this would break a lot of important backups for the majority of our customers. We would need to add some type of sensing to see xo-server's current status, and schedule the restart for when there's no longer any tasks running</p>
]]></description><link>https://xcp-ng.org/forum/post/46815</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/46815</guid><dc:creator><![CDATA[fohdeesha]]></dc:creator><pubDate>Tue, 15 Feb 2022 04:19:50 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Thu, 03 Feb 2022 03:15:08 GMT]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">I'm testing using certbot to install SSL cert for XOCE using Lets Encrypt <a href="https://snapcraft.io/docs/installing-snap-on-debian" target="_blank" rel="noopener noreferrer nofollow ugc">instructions</a> but need to know what is the path for XOCE webroot?</p>
<p dir="auto">Thx,</p>
<p dir="auto">SW</p>
]]></description><link>https://xcp-ng.org/forum/post/46371</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/46371</guid><dc:creator><![CDATA[stevewest15]]></dc:creator><pubDate>Thu, 03 Feb 2022 03:15:08 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Sun, 01 Nov 2020 18:53:52 GMT]]></title><description><![CDATA[<p dir="auto">Now you can even replace the cert via XO web UI (see <a href="https://xen-orchestra.com/blog/xen-orchestra-5-52/#xcpngxenserverhostscertificatesmanager" target="_blank" rel="noopener noreferrer nofollow ugc">https://xen-orchestra.com/blog/xen-orchestra-5-52/#xcpngxenserverhostscertificatesmanager</a>)</p>
]]></description><link>https://xcp-ng.org/forum/post/32903</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/32903</guid><dc:creator><![CDATA[olivierlambert]]></dc:creator><pubDate>Sun, 01 Nov 2020 18:53:52 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Sun, 01 Nov 2020 14:04:52 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/olivierlambert" aria-label="Profile: olivierlambert">@<bdi>olivierlambert</bdi></a> Regarding XCP-ng - just generated a Let's Encrypt certificate for one of my xcp-ng test hosts <code>xcp01.myplaylab.net</code> (XCP-ng 8.2 beta fully patched), replaced the <code>/etc/xensource/xapi-ssl.pem</code> with the LE certificate<code>xcp01.myplaylab.net.all.pem</code> while keeping the name <code>xapi-ssl.pem</code> and did a <code>xe-toolstack-restart</code>. That seems to work, since I get a valid LE certificate and secure connection when accessing <code>https://xcp01.myplaylab.net</code>. Could it be that simple <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f914.png?v=c63c1619ba5" class="not-responsive emoji emoji-android emoji--thinking_face" style="height:23px;width:auto;vertical-align:middle" title=":thinking_face:" alt="🤔" /> ? Do not have a pool and xo available right now, so just wondering...</p>
<p dir="auto">I was just too curious - the xcp-ng test host can be added to Xen Orchestra with the LE certificate - no need to accept unauthorized certificates anymore <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f601.png?v=c63c1619ba5" class="not-responsive emoji emoji-android emoji--grin" style="height:23px;width:auto;vertical-align:middle" title=":grin:" alt="😁" /></p>
]]></description><link>https://xcp-ng.org/forum/post/32896</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/32896</guid><dc:creator><![CDATA[gskger]]></dc:creator><pubDate>Sun, 01 Nov 2020 14:04:52 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Sun, 01 Nov 2020 12:20:42 GMT]]></title><description><![CDATA[<p dir="auto">Did a complete rewrite with better structure and focus on the interaction between pfsense and Xen Orchestra. Skipped the part of setting up the acme plugin for Webroot FTP as well, because it is very specific to my setup.</p>
]]></description><link>https://xcp-ng.org/forum/post/32890</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/32890</guid><dc:creator><![CDATA[gskger]]></dc:creator><pubDate>Sun, 01 Nov 2020 12:20:42 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Sun, 01 Nov 2020 10:27:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/fohdeesha" aria-label="Profile: fohdeesha">@<bdi>fohdeesha</bdi></a> just realized that I forgot to mention two steps (key- based ssh authentification from pfsense to <code>xo</code> for user <code>acme@xo.myplaylab.net</code> and making <code>acme</code>member of sudo on <code>xo</code>with limited sudo rights). The acme plugin configuration allows adding shell commands which are executed after the LE certification renewal (e.g. <code>ssh acme@xo.myplaylab.net "sudo /bin/systemctl restart xo-server"</code> to force xo-server to reload the certififcates).</p>
<p dir="auto">Wow, this now reads more complicated than it realy is <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f616.png?v=c63c1619ba5" class="not-responsive emoji emoji-android emoji--confounded" style="height:23px;width:auto;vertical-align:middle" title=":confounded:" alt="😖" /></p>
]]></description><link>https://xcp-ng.org/forum/post/32889</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/32889</guid><dc:creator><![CDATA[gskger]]></dc:creator><pubDate>Sun, 01 Nov 2020 10:27:23 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Sat, 31 Oct 2020 22:45:20 GMT]]></title><description><![CDATA[<p dir="auto">I think when I last asked <a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/julien-f" aria-label="Profile: julien-f">@<bdi>julien-f</bdi></a> about this he said it work work (just as you described), but the issue is xo-server will not reload certs without restarting the process. So the next time your let's encrypt instance updates those certs, xo-server will have no idea and you'll need to schedule a restart of that service after certs are updated</p>
]]></description><link>https://xcp-ng.org/forum/post/32883</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/32883</guid><dc:creator><![CDATA[fohdeesha]]></dc:creator><pubDate>Sat, 31 Oct 2020 22:45:20 GMT</pubDate></item><item><title><![CDATA[Reply to Xen Orchestra from source with Let&#x27;s Encrypt certificates on Sat, 31 Oct 2020 19:39:37 GMT]]></title><description><![CDATA[<p dir="auto">Ping <a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/julien-f" aria-label="Profile: julien-f">@<bdi>julien-f</bdi></a> about XO, if we can have this documented and if it's the best way <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=c63c1619ba5" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">Regarding XCP-ng, I'm aware about some related work from XAPI developers. Pinging <a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/psafont" aria-label="Profile: psafont">@<bdi>psafont</bdi></a></p>
]]></description><link>https://xcp-ng.org/forum/post/32882</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/32882</guid><dc:creator><![CDATA[olivierlambert]]></dc:creator><pubDate>Sat, 31 Oct 2020 19:39:37 GMT</pubDate></item></channel></rss>