<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>TLS &#8211; Wade Tregaskis</title>
	<atom:link href="https://wadetregaskis.com/tags/tls/feed/" rel="self" type="application/rss+xml" />
	<link>https://wadetregaskis.com</link>
	<description></description>
	<lastBuildDate>Tue, 28 Nov 2023 03:53:26 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://wadetregaskis.com/wp-content/uploads/2016/03/Stitch-512x512-1-256x256.png</url>
	<title>TLS &#8211; Wade Tregaskis</title>
	<link>https://wadetregaskis.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">226351702</site>	<item>
		<title>Migrated hosts &#038; out of the subdomain</title>
		<link>https://wadetregaskis.com/migrated-hosts-out-of-the-subdomain/</link>
					<comments>https://wadetregaskis.com/migrated-hosts-out-of-the-subdomain/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 28 Nov 2023 03:53:25 +0000</pubDate>
				<category><![CDATA[Meta]]></category>
		<category><![CDATA[Cyberduck]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Gandi.net]]></category>
		<category><![CDATA[IONOS]]></category>
		<category><![CDATA[TLS]]></category>
		<category><![CDATA[Transmit]]></category>
		<category><![CDATA[UpdraftPlus]]></category>
		<category><![CDATA[VPS]]></category>
		<category><![CDATA[webhosting]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://wadetregaskis.com/?p=5896</guid>

					<description><![CDATA[Mainly just a note for posterity &#8211; after many years of wanting to do it but procrastinating, I&#8217;ve finally migrated to a new web host. While I was doing that, I figured it was high time to drop the subdomain, so now it&#8217;s just https://wadetregaskis.com, instead of https://blog.wadetregaskis.com. Blogs are so last year. Previously I&#8230; <a class="read-more-link" href="https://wadetregaskis.com/migrated-hosts-out-of-the-subdomain/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>Mainly just a note for posterity &#8211; after many years of wanting to do it but procrastinating, I&#8217;ve finally migrated to a new web host.</p>



<p>While I was doing that, I figured it was high time to drop the subdomain, so now it&#8217;s just <a href="https://wadetregaskis.com" data-wpel-link="internal">https://wadetregaskis.com</a>, instead of <a href="https://blog.wadetregaskis.com" data-wpel-link="internal">https://blog.wadetregaskis.com</a>.  Blogs are <em>so</em> last year.</p>



<p>Previously I was using <a href="https://www.gandi.net" data-type="link" data-id="https://www.gandi.net" data-wpel-link="external" target="_blank" rel="external noopener">Gandi.net</a> (I recall choosing them because they were touted as a particularly privacy-centric host) <a href="https://www.gandi.net/en-AU/simple-hosting" data-wpel-link="external" target="_blank" rel="external noopener">shared webhosting</a>.  I&#8217;m now using an <a href="https://www.ionos.com/servers/vps" data-wpel-link="external" target="_blank" rel="external noopener">unmanaged VPS</a> from <a href="https://www.ionos.com" data-wpel-link="external" target="_blank" rel="external noopener">IONOS</a>.  This is far superior &#8211; site performance is much higher, I can finally use modern web technologies like TLS 1.3 and AVIF<sup data-fn="e357962a-2622-48d7-a0a8-7a1f62278e12" class="fn"><a href="#e357962a-2622-48d7-a0a8-7a1f62278e12" id="e357962a-2622-48d7-a0a8-7a1f62278e12-link">1</a></sup>, and frankly it&#8217;s just deeply satisfying to have a whole [virtual] machine at my disposal.  It might be a gateway to bigger things.</p>



<p>I chose IONOS because they offered the best apparent value amongst hosts that seemed well-reviewed.  I&#8217;m now paying just a <em>third</em> of what I was at Gandi.net (for what amounts to at least 2x the CPU performance and 4x the RAM!).  They also include a full copy of <a href="https://www.plesk.com" data-wpel-link="external" target="_blank" rel="external noopener">Plesk</a>, which has proven a net win in getting everything set up and configured &#8211; notwithstanding some serious initial issues with it, that ended up requiring me to reimage the whole VM and restart from scratch. 😒</p>



<p>The process took over two full days, partly because of the aforementioned Plesk issue which cost me nearly a full day by itself, and otherwise because of just a whole bunch of issues along the way.  e.g.:</p>



<ul class="wp-block-list">
<li>File transfers (via HTTPS or SFTP) to &amp; from Gandi are slow.  They always have been &#8211; it&#8217;s one of several things that always bothered me about Gandi.</li>



<li>TCP connections to Gandi tend to get killed if they hang around for any significant amount of time (such as for large file transfers over HTTPS or SFTP<sup data-fn="9a5ac91a-c7ce-450d-9d7e-d2f7434e5772" class="fn"><a href="#9a5ac91a-c7ce-450d-9d7e-d2f7434e5772" id="9a5ac91a-c7ce-450d-9d7e-d2f7434e5772-link">2</a></sup>).
<ul class="wp-block-list">
<li>This in turn exacerbated a few bugs in <a href="https://cyberduck.io" data-wpel-link="external" target="_blank" rel="external noopener">Cyberduck</a> whereby automatic retries don&#8217;t work <em>and</em> I had to manually relaunch Cyberduck completely between retries (otherwise it locked up).<br><br>I partly addressed this by using <a href="https://panic.com/transmit/" data-wpel-link="external" target="_blank" rel="external noopener">Transmit</a> instead, which isn&#8217;t <em>entirely</em> immune to Gandi&#8217;s bugginess but seemed to hit it <em>much</em> less often.  And is also a much more elegant application, in any case.</li>



<li>Combined with the general slowness, this meant it took most of an entire day to copy out the compressed copy of the old site &#8211; which was just a few gigabytes.</li>
</ul>
</li>



<li>I struggled to find a good way to migrate the site <em>before</em> committing to the actual domain name migration.  I had never migrated a WordPress site between hosts &#8211; never even restored in-place from an existing backup &#8211; so I had no real idea to what degree it would work.<br><br>This would have been easier without TLS.  I long-ago enabled HSTS for my site, and I technically could have worked around that in various ways, but no matter which approach I took I think it would have been challenging.<br><br>Ultimately I just got too frustrated and said &#8220;screw it, I&#8217;ll switch the domain name and <em>then</em> figure out how to move WordPress&#8221;.  Thankfully almost nobody visits this site, so breaking it for a day or so was inconsequential.
<ul class="wp-block-list">
<li>I made this slightly harder on myself by insisting on a &#8220;proper&#8221; TLS certificate for the new host &#8211; and therefore from IONOS since they include one free with each VPS &#8211; rather than using <a href="https://letsencrypt.org" data-wpel-link="external" target="_blank" rel="external noopener">Let&#8217;s Encrypt</a> (support for which is provided by a pre-installed <a href="https://www.plesk.com/extensions/letsencrypt/" data-wpel-link="external" target="_blank" rel="external noopener">extension</a> to Plesk).  IONOS&#8217;s control dashboard didn&#8217;t particularly want to issue the certificate while non-IONOS nameservers were used for the domain, although eventually I coaxed it into doing so.</li>
</ul>
</li>



<li>It took a while to figure out how DNS needed to be configured, between the old host (and registrar), the new host, and Cloudflare.  DNS isn&#8217;t <em>that</em> complicated in principle, I just wasn&#8217;t all that familiar with it.  I&#8217;ve added TXT records before and done a few other tweaks, but nothing of the complexity of multiple intertwined nameservers and non-trivial subdomain routing.<br><br>Although in retrospect having Cloudflare in front of everything perhaps made it easier since ultimately I just had to change settings there, as opposed to having to move nameservers.
<ul class="wp-block-list">
<li>DNS propagation delays were a significant irritation and cause of substantial delays.  After several key changes, I had no choice but to wait an indeterminate number of hours before I could see their effects and move on to subsequent steps.
<ul class="wp-block-list">
<li>macOS bugs whereby it ignores the last entry in <code>/etc/hosts</code><sup data-fn="bb84bf6a-f6e4-4802-98c5-84b06ed2ef00" class="fn"><a href="#bb84bf6a-f6e4-4802-98c5-84b06ed2ef00" id="bb84bf6a-f6e4-4802-98c5-84b06ed2ef00-link">3</a></sup> also didn&#8217;t help.</li>
</ul>
</li>
</ul>
</li>



<li><a href="https://updraftplus.com" data-wpel-link="external" target="_blank" rel="external noopener">UpdraftPlus</a> kept failing to restore the new site from a backup of the old (ultimately it turned out to be an OOM-killing problem, easily fixed by <a href="https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-22-04" data-wpel-link="external" target="_blank" rel="external noopener">enabling some swap space</a>).</li>



<li>Many miscellaneous bugs in Plesk, half of which I&#8217;ve already successfully repressed, but as merely a few examples:
<ul class="wp-block-list">
<li>Plesk&#8217;s <a href="https://www.plesk.com/wp-toolkit/" data-wpel-link="external" target="_blank" rel="external noopener">WP Toolkit</a> extension <em>believes</em> it can set up a crontab entry to poke <code>wp-cron.php</code> periodically, but it can&#8217;t (because apparently you can&#8217;t invoke that directly via <code>php</code>, you have to actually go through Apache with a real HTTPS request &#8211; I never got to the bottom of why).</li>



<li>Sendmail / postfix don&#8217;t work out of the box with Plesk; WordPress &amp; Plesk just silently fail to send emails.  I never found any way to get them to log their failures, but I did ultimately get it working through trial-and-error (and I can&#8217;t even say what specific configuration change(s) actually fixed it).
<ul class="wp-block-list">
<li>It also took a while to figure out how to properly set up DKIM, SPF, and DMARC, although that was relatively straightforward once I found <a href="https://docs.plesk.com/en-US/obsidian/administrator-guide/mail/antispam-tools/dkim-spf-and-dmarc-protection.59433" data-wpel-link="external" target="_blank" rel="external noopener">this documentation</a>.</li>
</ul>
</li>



<li>After using Plesk and staying logging in just fine for over a day, on multiple computers, it suddenly decided it would log me out instantly almost every time.  This is <a href="https://duckduckgo.com/?q=plesk+logs+me+out+immediately" data-wpel-link="external" target="_blank" rel="external noopener">apparently a common issue</a>, and through sheer stubbornness of countless login cycles I was able to get to the &#8220;Allow IP address changes during a single session&#8221; checkbox, which fixed it for me.</li>
</ul>
</li>
</ul>



<p>I&#8217;m glad it&#8217;s done, and there is a solid sense of satisfaction with having conquered the litany of bugs, design flaws, and limitations throughout the whole process.</p>



<p>But I really hope I don&#8217;t have to move hosts again anytime soon.</p>


<ol class="wp-block-footnotes"><li id="e357962a-2622-48d7-a0a8-7a1f62278e12">…because I can install modern versions of basic tools &amp; libraries, like curl and ImageMagick, that support things like TLS 1.3 and AVIF. <a href="#e357962a-2622-48d7-a0a8-7a1f62278e12-link" aria-label="Jump to footnote reference 1">↩︎</a></li><li id="9a5ac91a-c7ce-450d-9d7e-d2f7434e5772">Made worse by Gandi&#8217;s weird SSH server being incompatible with rsync, thus forcing the use of all-or-nothing transfers over SFTP. <a href="#9a5ac91a-c7ce-450d-9d7e-d2f7434e5772-link" aria-label="Jump to footnote reference 2">↩︎</a></li><li id="bb84bf6a-f6e4-4802-98c5-84b06ed2ef00">It always ignores the last line of the file, so you have to explicitly add a trailing line return.  This is actually not uncommon with Unix tools of a certain pedigree, from before good design, robustness, and user-friendliness were values. <a href="#bb84bf6a-f6e4-4802-98c5-84b06ed2ef00-link" aria-label="Jump to footnote reference 3">↩︎</a></li></ol>]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/migrated-hosts-out-of-the-subdomain/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5896</post-id>	</item>
	</channel>
</rss>
