<?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/"
	>

<channel>
	<title>Spheron1</title>
	<atom:link href="https://www.spheron1.uk/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.spheron1.uk</link>
	<description></description>
	<lastBuildDate>Tue, 13 Jan 2026 11:01:44 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>cPanel Dovecot 2.4 upgrade breaking Windows 7 clients</title>
		<link>https://www.spheron1.uk/2026/01/13/cpanel-dovecot-2-4-upgrade-breaking-windows-7-clients/</link>
					<comments>https://www.spheron1.uk/2026/01/13/cpanel-dovecot-2-4-upgrade-breaking-windows-7-clients/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Tue, 13 Jan 2026 11:01:44 +0000</pubDate>
				<category><![CDATA[cPanel/WHM]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[ciphers]]></category>
		<category><![CDATA[cPanel]]></category>
		<category><![CDATA[Diffie-Hellman]]></category>
		<category><![CDATA[Dovecot]]></category>
		<category><![CDATA[Dovecot 2.3]]></category>
		<category><![CDATA[Dovecot 2.4]]></category>
		<category><![CDATA[ECDSA]]></category>
		<category><![CDATA[IMAP]]></category>
		<category><![CDATA[POP3]]></category>
		<category><![CDATA[RSA]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[SSL certificate]]></category>
		<category><![CDATA[SSL/TLS]]></category>
		<category><![CDATA[TLS]]></category>
		<category><![CDATA[WHM]]></category>
		<category><![CDATA[Windows 7]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=5250</guid>

					<description><![CDATA[<p>cPanel recently rolled out an upgrade from Dovecot 2.3 to 2.4 which has accidentally broken old IMAP and POP3 clients, such as those running on Windows 7 as it removes some key configuration needed to support certain SSL/TLS ciphers. For example, a Microsoft Outlook client running on Windows 7 would report: Receiving reported error (0x800CCC1A) Your server does not support&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2026/01/13/cpanel-dovecot-2-4-upgrade-breaking-windows-7-clients/">cPanel Dovecot 2.4 upgrade breaking Windows 7 clients</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>cPanel recently rolled out an upgrade from Dovecot 2.3 to 2.4 which has accidentally broken old IMAP and POP3 clients, such as those running on Windows 7 as it removes some key configuration needed to support certain SSL/TLS ciphers.</p>



<p>For example, a Microsoft Outlook client running on Windows 7 would report:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Receiving reported error (0x800CCC1A) Your server does not support the connection encryption type you have specified. Try changing the encryption method. Contact your mai server administrator or Internet service provider (ISP) for additional assistance.&#8221;</p>
</blockquote>



<p class="has-luminous-vivid-amber-background-color has-background">Despite the minor version number increment, Dovecot 2.4 is a major update which has significant breaking changes to the structure of the configuration files and thus the old configuration files need to be carefully converted in order to work with Dovecot 2.4.<br><br>Dovecot 2.4 should really have been called Dovecot 3.0. I have no idea why Open-Xchange considered a minor version number bump to be appropriate for this release.</p>



<p>The default TLS ciphers enabled for Dovecot (both 2.3 and 2.4) on cPanel are:</p>



<ul class="wp-block-list">
<li>ECDHE-ECDSA-AES128-GCM-SHA256</li>



<li>ECDHE-RSA-AES128-GCM-SHA256</li>



<li>ECDHE-ECDSA-AES256-GCM-SHA384</li>



<li>ECDHE-RSA-AES256-GCM-SHA384</li>



<li>ECDHE-ECDSA-CHACHA20-POLY1305</li>



<li>ECDHE-RSA-CHACHA20-POLY1305</li>



<li>DHE-RSA-AES128-GCM-SHA256</li>



<li>DHE-RSA-AES256-GCM-SHA384</li>
</ul>



<p>This is almost identical to the very useful <a href="https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_(recommended)" title="">Mozilla &#8220;Intermediate&#8221; list</a>, except that the DHE-RSA-CHACHA20-POLY1305 cipher is missing.</p>



<p>Windows 7 has very poor support for modern cryptography since it went end-of-life in January 2020 and so hasn&#8217;t received any updates for 6 years now.</p>



<p>The supported cipher suites advertised in the SSL/TLS handshake by a Windows 7 client device are:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>IANA name</strong></td><td><strong>OpenSSL name</strong></td></tr><tr><td>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384</td><td>ECDHE-RSA-AES256-SHA384</td></tr><tr><td>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</td><td>ECDHE-RSA-AES128-SHA256</td></tr><tr><td>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA</td><td>ECDHE-RSA-AES256-SHA</td></tr><tr><td>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</td><td>ECDHE-RSA-AES128-SHA</td></tr><tr><td>TLS_DHE_RSA_WITH_AES_256_GCM_SHA384</td><td>DHE-RSA-AES256-GCM-SHA384</td></tr><tr><td>TLS_DHE_RSA_WITH_AES_128_GCM_SHA256</td><td>DHE-RSA-AES128-GCM-SHA256</td></tr><tr><td>TLS_RSA_WITH_AES_256_GCM_SHA384</td><td>AES256-GCM-SHA384</td></tr><tr><td>TLS_RSA_WITH_AES_128_GCM_SHA256</td><td>AES128-GCM-SHA256</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384</td><td>ECDHE-ECDSA-AES256-GCM-SHA384</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</td><td>ECDHE-ECDSA-AES128-GCM-SHA256</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384</td><td>ECDHE-ECDSA-AES256-SHA384</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256</td><td>ECDHE-ECDSA-AES128-SHA256</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA</td><td>ECDHE-ECDSA-AES256-SHA</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA</td><td>ECDHE-ECDSA-AES128-SHA</td></tr><tr><td>TLS_RSA_WITH_AES_256_CBC_SHA256</td><td>AES256-SHA256</td></tr><tr><td>TLS_RSA_WITH_AES_128_CBC_SHA256</td><td>AES128-SHA256</td></tr><tr><td>TLS_RSA_WITH_AES_256_CBC_SHA</td><td>AES256-SHA</td></tr><tr><td>TLS_RSA_WITH_AES_128_CBC_SHA</td><td>AES128-SHA</td></tr><tr><td>TLS_DHE_DSS_WITH_AES_256_CBC_SHA256</td><td>DHE-DSS-AES256-SHA256</td></tr><tr><td>TLS_DHE_DSS_WITH_AES_128_CBC_SHA256</td><td>DHE-DSS-AES128-SHA256</td></tr><tr><td>TLS_DHE_DSS_WITH_AES_256_CBC_SHA</td><td>DHE-DSS-AES256-SHA</td></tr><tr><td>TLS_DHE_DSS_WITH_AES_128_CBC_SHA</td><td>DHE-DSS-AES128-SHA</td></tr><tr><td>TLS_RSA_WITH_3DES_EDE_CBC_SHA</td><td>DES-CBC3-SHA</td></tr><tr><td>TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA</td><td>EDH-DSS-DES-CBC3-SHA</td></tr><tr><td>TLS_RSA_WITH_RC4_128_SHA</td><td>RC4-SHA</td></tr><tr><td>TLS_RSA_WITH_RC4_128_MD5</td><td>RC4-MD5</td></tr></tbody></table></figure>



<p>Most of these are now considered insecure and thus are not enabled on the server side.</p>



<p>The overlap between the TLS ciphers supported by the client and the TLS ciphers which are allowed on the server side is just four ciphers:</p>



<ul class="wp-block-list">
<li>ECDHE-ECDSA-AES128-GCM-SHA256</li>



<li>ECDHE-ECDSA-AES256-GCM-SHA384</li>



<li>DHE-RSA-AES256-GCM-SHA384</li>



<li>DHE-RSA-AES128-GCM-SHA256</li>
</ul>



<p>Unfortunately, the two ECDHE-ECDSA-* ones will only work if you are using ECDSA SSL certificates. If you are using RSA certificates then you can only use the DHE-RSA-* ones.<br>Still, we have TLS ciphers which are supported by both the client and the server so this should be working&#8230; why isn&#8217;t it?</p>



<p>Previously under Dovecot 2.3, cPanel had the following configuration in /etc/dovecot/dovecot.conf for the Diffie-Hellman parameters file necessary for the DHE-RSA-* ciphers to function:</p>



<pre class="wp-block-code"><code># SSL DH parameters
# Generate new params with `openssl dhparam -out /etc/dovecot/dh.pem 4096`
# Or migrate from old ssl-parameters.dat file with the command dovecot
# gives on startup when ssl_dh is unset.
ssl_dh = &lt;/etc/dovecot/dh.pem</code></pre>



<p>In Dovecot 2.4 this configuration directive changed to &#8220;ssl_server_dh_file&#8221; (see <a href="https://doc.dovecot.org/2.4.2/installation/upgrade/2.3-to-2.4.html#converted-settings">https://doc.dovecot.org/2.4.2/installation/upgrade/2.3-to-2.4.html#converted-settings</a>) and it isn&#8217;t present anywhere in /etc/dovecot/ post-upgrade on cPanel servers.</p>



<p class="has-pale-cyan-blue-background-color has-background">As a random, aside; the old configuration &#8220;ssl_dh&#8221; option value was for the contents of the certificate, which could be read from a file with the redirect. The new &#8220;ssl_server_dh_file&#8221; option takes file path as the value, which Dovecot then reads itself. As such, when moving from 2.3 to 2.4 it&#8217;s important to ensure that you don&#8217;t copy over the less than symbol that precedes the path, otherwise Dovecot will try to read the contents of that file and treat those as the path that it should use.</p>



<p>In order to add the configuration for the Diffie-Hellman parameters file to the Dovecot 2.4 configuration yourself, you will need to make use of the cPanel configuration file templating system, otherwise any manual changes to the configuration files in /etc/dovecot/ will get overwritten the next time cPanel regenerates them.</p>



<p>First check if the /var/cpanel/templates/dovecot/main.local file already exists (for example if you already have custom Dovecot configuration or if you are using Imunify360). If not, then copy the file /var/cpanel/templates/dovecot/main.default to /var/cpanel/templates/dovecot/main.local and edit it in your favour editor to add the following configuration to the bottom of the file:</p>



<pre class="wp-block-code"><code># Required for DHE-RSA-AES128-GCM-SHA256 and DHE-RSA-AES256-GCM-SHA384 ciphers needed for Windows 7 clients to work
ssl_server_dh_file = /etc/dovecot/dh.pem</code></pre>



<p>Once you have modified the /var/cpanel/templates/dovecot/main.local file, you can run &#8220;/scripts/builddovecotconf&#8221; to regenerate the configuration files from your new template, followed by &#8220;/scripts/restartsrv_dovecot&#8221; to restart the Dovecot service.</p>



<p>IMAP and POP3 clients running on old devices such as Windows 7 should once again be able to connect as the DHE-RSA-* TLS ciphers that they rely on are functioning again.</p><p>The post <a href="https://www.spheron1.uk/2026/01/13/cpanel-dovecot-2-4-upgrade-breaking-windows-7-clients/">cPanel Dovecot 2.4 upgrade breaking Windows 7 clients</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2026/01/13/cpanel-dovecot-2-4-upgrade-breaking-windows-7-clients/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Acronis Cyber Infrastructure/Virtuozzo Hybrid Infrastructure S3 admin command line</title>
		<link>https://www.spheron1.uk/2025/12/10/acronis-cyber-infrastructure-virtuozzo-hybrid-infrastructure-s3-admin-command-line/</link>
					<comments>https://www.spheron1.uk/2025/12/10/acronis-cyber-infrastructure-virtuozzo-hybrid-infrastructure-s3-admin-command-line/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Wed, 10 Dec 2025 17:04:23 +0000</pubDate>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[ACI]]></category>
		<category><![CDATA[Acronis]]></category>
		<category><![CDATA[Acronis Cyber Infrastructure]]></category>
		<category><![CDATA[ostor]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[VHI]]></category>
		<category><![CDATA[Virtuozzo]]></category>
		<category><![CDATA[Virtuozzo Hybrid Infrastructure]]></category>
		<category><![CDATA[Virtuozzo Hybrid Infrastructure (VHI]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=4947</guid>

					<description><![CDATA[<p>Acronis Cyber Infrastructure (ACI)/Virtuozzo Hybrid Infrastructure (VHI) provides a command line interface (CLI) utility for administering S3 accounts, users, buckets etc. called &#8220;ostor-s3-admin&#8220;, however it isn&#8217;t the most intuitive CLI tool to use and the documentation for this is both somewhat sparse and rather scattered around in multiple different places. The first issue you will probably run into when trying&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2025/12/10/acronis-cyber-infrastructure-virtuozzo-hybrid-infrastructure-s3-admin-command-line/">Acronis Cyber Infrastructure/Virtuozzo Hybrid Infrastructure S3 admin command line</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Acronis Cyber Infrastructure (ACI)/Virtuozzo Hybrid Infrastructure (VHI) provides a command line interface (CLI) utility for administering S3 accounts, users, buckets etc. called &#8220;<em>ostor-s3-admin</em>&#8220;, however it isn&#8217;t the most intuitive CLI tool to use and the documentation for this is both somewhat sparse and rather scattered around in multiple different places.</p>



<p>The first issue you will probably run into when trying to use the &#8220;<em>ostor-s3-admin</em>&#8221; command is the following error message: </p>



<pre class="wp-block-code"><code>Volume id (-V) must be specified</code></pre>



<p>You can get a list of all of your volume IDs by running &#8220;<em>ostor-ctl get-config -V</em>&#8220;. This will give you something like the following:</p>



<pre class="wp-block-code"><code>VOL_ID             TYPE     STATE
0100000000000002   OBJ     READY</code></pre>



<p>You can then specify the appropriate volume ID with the &#8220;<em>-V</em>&#8221; argument to the &#8220;<em>ostor-s3-admin</em>&#8221; command.</p>



<p>Another common error that you can run into is something along the lines of:</p>



<pre class="wp-block-code"><code>Request failed due to internal error
Command=list-user-accounts failed with error=8(Requested object not found)</code></pre>



<p>Although the exact message that you receive will vary depending upon the command that you are trying to run.</p>



<p>This error is caused by not specifying a user account to execute the command as. I resolved this by grabbing the main admin account user ID from the ACI/VHI S3 admin web interface and passing that with the &#8220;<em>-i</em>&#8221; argument.<br>Alternatively you can use &#8220;<em>-e</em>&#8221; instead of &#8220;<em>-i</em>&#8221; and pass the email address of the user account that you want to run the command as.</p>



<p>Another rather vague and unhelpful error message that you may receive from &#8220;<em>ostor-s3-admin</em>&#8221; is:</p>



<pre class="wp-block-code"><code>Bad user management cmd</code></pre>



<p>This actually means that you have the arguments before the command &#8211; the &#8220;<em>ostor-s3-admin</em>&#8221; utility expects to receive the command (e.g. &#8220;<em>list-user-accounts</em>&#8221; or &#8220;<em>list-all-buckets</em>&#8220;) <em>before</em> the arguments such as the volume ID and user ID/email.</p>



<p>So for example the full commands should be run as:</p>



<pre class="wp-block-code"><code>ostor-s3-admin list-all-buckets -V volumeid -i userid</code></pre>



<p>Or:</p>



<pre class="wp-block-code"><code>ostor-s3-admin delete-bucket -V volumeid -i userid -b bucketname</code></pre>



<p>Obviously you will need to replace &#8220;<em>volumeid</em>&#8220;, &#8220;<em>userid</em>&#8221; and &#8220;<em>bucketname</em>&#8221; with the respective values.</p>



<p>The &#8220;<em>delete-bucket</em>&#8221; command is a very handy one that seems to be missing from a lot of the ACI/VHI S3 documentation &#8211; it will delete the specified bucket along with all of the contents, unlike the admin web interface which expects you to empty the bucket yourself first. This does however take a very long time to run on large buckets.</p><p>The post <a href="https://www.spheron1.uk/2025/12/10/acronis-cyber-infrastructure-virtuozzo-hybrid-infrastructure-s3-admin-command-line/">Acronis Cyber Infrastructure/Virtuozzo Hybrid Infrastructure S3 admin command line</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2025/12/10/acronis-cyber-infrastructure-virtuozzo-hybrid-infrastructure-s3-admin-command-line/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ARM64 timescaledb-tune on macOS</title>
		<link>https://www.spheron1.uk/2025/11/01/arm64-timescaledb-tune-on-macos/</link>
					<comments>https://www.spheron1.uk/2025/11/01/arm64-timescaledb-tune-on-macos/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Sat, 01 Nov 2025 12:02:56 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[ARM64]]></category>
		<category><![CDATA[Brew]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[macOS]]></category>
		<category><![CDATA[Postgres]]></category>
		<category><![CDATA[psql]]></category>
		<category><![CDATA[Rosetta]]></category>
		<category><![CDATA[Rosetta 2]]></category>
		<category><![CDATA[Tiger Data]]></category>
		<category><![CDATA[TimescaleDB]]></category>
		<category><![CDATA[timescaledb-tune]]></category>
		<category><![CDATA[x86-64]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=4582</guid>

					<description><![CDATA[<p>Despite Apple having transitioned their desktop and laptop devices from x86-64 to ARM64 with the M1 processor and macOS 11 Big Sur in late 2020, TimescaleDB still don&#8217;t provide ARM64 builds of their &#8220;timescaledb-tune&#8221; utility on macOS in November 2025 through either their official installation method using a Homebrew tap or in the binaries released in the GitHub repository. Trying&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2025/11/01/arm64-timescaledb-tune-on-macos/">ARM64 timescaledb-tune on macOS</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Despite Apple having transitioned their desktop and laptop devices from x86-64 to ARM64 with the M1 processor and macOS 11 Big Sur in late 2020, TimescaleDB still don&#8217;t provide ARM64 builds of their &#8220;timescaledb-tune&#8221; utility on macOS in November 2025 through either their <a href="https://docs.tigerdata.com/self-hosted/latest/install/installation-macos/" title="">official installation method using a Homebrew tap</a> or in the <a href="https://github.com/timescale/timescaledb-tune/releases" title="">binaries released in the GitHub repository</a>.</p>



<p>Trying to use the &#8220;timescaledb-tune&#8221; utility (a key part of the installation process for TimescaleDB) on any Mac made in the last 5 years will result in an error unless you have the Rosetta 2 dynamic binary translation feature installed:</p>



<pre class="wp-block-code"><code>unable to execute /opt/homebrew/bin/timescaledb-tune: Bad CPU type in executable</code></pre>



<p>This is particularly weird as the TimescaleDB library itself is ARM64.</p>



<p>Given that Tiger Data have had 5 years to ship a native ARM64 binary for their &#8220;timescaledb-tune&#8221; utility, it is rather disappointing to see that they are still relying on people installing the optional Rosetta 2 dynamic binary translation feature on their devices. This requirement also doesn&#8217;t seem to be documented anywhere that I can find.</p>



<p>Apple are going to be removing most of Rosetta 2 from macOS 28 in 2027, so hopefully Tiger Data will get around to shipping an ARM64 binary before then.</p>



<p>In the meantime, we can manually build an ARM64 binary for the &#8220;timescaledb-tune&#8221; utility from source as follows:</p>



<ol class="wp-block-list">
<li>Download the Go installer from <a href="https://go.dev/dl/">https://go.dev/dl/</a> using the &#8220;Apple macOS (ARM64)&#8221; option and run through the installer steps.</li>



<li>Open up your preferred terminal app and run &#8220;go install github.com/timescale/timescaledb-tune/cmd/timescaledb-tune@main&#8221;.</li>



<li>You will find the ARM64 binary for the &#8220;timescaledb-tune&#8221; utility in ~/go/bin/timescaledb-tune</li>
</ol>



<p>I really don&#8217;t understand why Tiger Data aren&#8217;t shipping an ARM64 binary for their &#8220;timescaledb-tune&#8221; utility, given how ridiculously simple it is to build one!</p><p>The post <a href="https://www.spheron1.uk/2025/11/01/arm64-timescaledb-tune-on-macos/">ARM64 timescaledb-tune on macOS</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2025/11/01/arm64-timescaledb-tune-on-macos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>APT/DPKG errors for shim-signed package</title>
		<link>https://www.spheron1.uk/2025/05/07/apt-dpkg-errors-for-shim-signed-package/</link>
					<comments>https://www.spheron1.uk/2025/05/07/apt-dpkg-errors-for-shim-signed-package/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Wed, 07 May 2025 10:15:14 +0000</pubDate>
				<category><![CDATA[Ubuntu and Debian]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[debconf]]></category>
		<category><![CDATA[dpkg]]></category>
		<category><![CDATA[EFI]]></category>
		<category><![CDATA[ESP]]></category>
		<category><![CDATA[GRUB]]></category>
		<category><![CDATA[shim-signed]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UEFI]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=2299</guid>

					<description><![CDATA[<p>When running a routine &#8220;apt update&#8221; on an Ubuntu server, I was getting the following error: The bizarre thing here is that the /dev/nvme1n1p1 device is nothing to do with the UEFI ESP, that lives on /dev/sdi1 as this particular server can&#8217;t boot from NVMe devices and so uses a small USB stick for /boot/efi and /boot instead. The /dev/sdi1&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2025/05/07/apt-dpkg-errors-for-shim-signed-package/">APT/DPKG errors for shim-signed package</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>When running a routine &#8220;<code>apt update</code>&#8221; on an Ubuntu server, I was getting the following error:</p>



<pre class="wp-block-code"><code>Setting up shim-signed (1.51.4+15.8-0ubuntu1) ...
Installing grub to /boot/efi.
Installing for x86_64-efi platform.
Installation finished. No error reported.
mount: /var/lib/grub/esp: /dev/nvme1n1p1 already mounted or mount point busy.
dpkg: error processing package shim-signed (--configure):
 installed shim-signed package post-installation script subprocess returned error exit status 32
Errors were encountered while processing:
 shim-signed
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)</code></pre>



<p>The bizarre thing here is that the <em>/dev/nvme1n1p1</em> device is nothing to do with the UEFI ESP, that lives on <em>/dev/sdi1</em> as this particular server can&#8217;t boot from NVMe devices and so uses a small USB stick for <em>/boot/efi</em> and <em>/boot</em> instead.</p>



<p>The <em>/dev/sdi1</em> device was mounted on <em>/boot/efi </em>as expected, and the UUID listed in <em>/etc/fstab</em> was correct, so initially I wasn&#8217;t sure where the reference to <em>/dev/nvme1n1p1</em> for the UEFI ESP was coming from.<br>After a bit of digging I found that this was in fact caused by the <em>/var/cache/debconf/config.dat</em> file, which contained the following entry:</p>



<pre class="wp-block-code"><code>Name: grub-efi/install_devices
Template: grub-efi/install_devices
Value: /dev/disk/by-id/usb-SanDisk_Ultra_0401d75aeb6cd405701a2711e62657aae5100e05183ca1b9d69275564cee2e887ef5000000000000000000006c97162200805e188a5581075cac9e0f-0:0-part1, /dev/disk/by-id/nvme-eui.0000000001000000e4d25c49119f5401-part1, /dev/disk/by-id/nvme-eui.0000000001000000e4d25cb9029f5401-part1
Owners: grub-common, grub-efi-amd64, grub-pc
Flags: seen
Variables:
 CHOICES = /dev/nvme1n1p1 (1127 MB; ) on 512110 MB INTEL SSDPEKNU512GZ, /dev/nvme0n1p1 (1127 MB; ) on 512110 MB INTEL SSDPEKNU512GZ, /dev/sdi1 (1127 MB; /boot/efi) on 30765 MB Ultra
 RAW_CHOICES = /dev/disk/by-id/nvme-eui.0000000001000000e4d25c49119f5401-part1, /dev/disk/by-id/nvme-eui.0000000001000000e4d25cb9029f5401-part1, /dev/disk/by-id/usb-SanDisk_Ultra_0401d75aeb6cd405701a2711e62657aae5100e05183ca1b9d69275564cee2e887ef5000000000000000000006c97162200805e188a5581075cac9e0f-0:0-part1</code></pre>



<p>I ran the following command to explicitly set it to the UUID of the filesystem on the <em>/dev/sdi1</em> device:</p>



<pre class="wp-block-code"><code>echo "grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-uuid/47E1-19C4" | debconf-set-selections</code></pre>



<p>Now the <em>/var/cache/debconf/config.dat</em> file contains:</p>



<pre class="wp-block-code"><code>Name: grub-efi/install_devices
Template: grub-efi/install_devices
Value: /dev/disk/by-uuid/47E1-19C4
Owners: grub-common, grub-efi-amd64, grub-pc
Flags: seen
Variables:
 CHOICES = /dev/nvme1n1p1 (1127 MB; ) on 512110 MB INTEL SSDPEKNU512GZ, /dev/nvme0n1p1 (1127 MB; ) on 512110 MB INTEL SSDPEKNU512GZ, /dev/sdi1 (1127 MB; /boot/efi) on 30765 MB Ultra
 RAW_CHOICES = /dev/disk/by-id/nvme-eui.0000000001000000e4d25c49119f5401-part1, /dev/disk/by-id/nvme-eui.0000000001000000e4d25cb9029f5401-part1, /dev/disk/by-id/usb-SanDisk_Ultra_0401d75aeb6cd405701a2711e62657aae5100e05183ca1b9d69275564cee2e887ef5000000000000000000006c97162200805e188a5581075cac9e0f-0:0-part1</code></pre>



<p>After making this change, APT is happy again:</p>



<pre class="wp-block-code"><code>Setting up shim-signed (1.51.4+15.8-0ubuntu1) ...
Installing grub to /boot/efi.
Installing for x86_64-efi platform.
Installation finished. No error reported.</code></pre>



<p>I think this confusion was ultimately caused by some stray ESP partitions on the NVMe devices leftover from a previous attempt to install Ubuntu on this server.</p><p>The post <a href="https://www.spheron1.uk/2025/05/07/apt-dpkg-errors-for-shim-signed-package/">APT/DPKG errors for shim-signed package</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2025/05/07/apt-dpkg-errors-for-shim-signed-package/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Acronis Cyber Infrastructure USB installer</title>
		<link>https://www.spheron1.uk/2025/05/06/acronis-cyber-infrastructure-usb-installer/</link>
					<comments>https://www.spheron1.uk/2025/05/06/acronis-cyber-infrastructure-usb-installer/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Tue, 06 May 2025 11:43:44 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[ACI]]></category>
		<category><![CDATA[Acronis]]></category>
		<category><![CDATA[Acronis Cyber Infrastructure]]></category>
		<category><![CDATA[Acronis Cyber Protect]]></category>
		<category><![CDATA[Anaconda]]></category>
		<category><![CDATA[OpenStack]]></category>
		<category><![CDATA[Rufus]]></category>
		<category><![CDATA[Ventoy]]></category>
		<category><![CDATA[VHI]]></category>
		<category><![CDATA[Virtuozzo]]></category>
		<category><![CDATA[Virtuozzo Hybrid Infrastructure]]></category>
		<category><![CDATA[VzLinux]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=2251</guid>

					<description><![CDATA[<p>Recently a colleague and I have run into all sorts of problems trying to install Acronis Cyber Infrastructure (ACI) from a USB flash drive. ACI is basically Virtuozzo Hybrid Infrastructure (VHI), but skinned blue instead of the usual red and with the Acronis Backup Gateway service added so that Acronis Cyber Protect can use it as for backup storage.For those&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2025/05/06/acronis-cyber-infrastructure-usb-installer/">Acronis Cyber Infrastructure USB installer</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Recently a colleague and I have run into all sorts of problems trying to install <a href="https://www.acronis.com/en-gb/products/cyber-infrastructure/" title="">Acronis Cyber Infrastructure</a> (ACI) from a USB flash drive.</p>



<p>ACI is basically <a href="https://www.virtuozzo.com/hybrid-infrastructure/" title="">Virtuozzo Hybrid Infrastructure</a> (VHI), but skinned blue instead of the usual red and with the Acronis Backup Gateway service added so that <a href="https://www.acronis.com/en-gb/products/cyber-protect/" title="">Acronis Cyber Protect</a> can use it as for backup storage.<br>For those who aren&#8217;t familiar, VHI is Virtuozzo&#8217;s <a href="https://www.openstack.org" title="">OpenStack</a> distribution with their proprietary storage layer that is similar to <a href="https://ceph.com/" title="">Ceph</a>, but apparently much more performant. Under the hood this uses <a href="https://vzlinux.org" title="">VzLinux</a>, which is Virtuozzo&#8217;s <a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux" title="">RetHat Enterprise Linux</a> (RHEL) clone.</p>



<p>This means that much like other RHEL clones (e.g. <a href="https://almalinux.org" title="">AlmaLinux</a> and <a href="https://rockylinux.org" title="">Rocky Linux</a>), ACI uses the <a href="https://github.com/rhinstaller/anaconda" title="">Anaconda</a> installer. As such, you would expect it to work with common methods of creating a bootable USB flash drive such as <a href="https://www.ventoy.net/" title="">Ventoy</a> or <a href="https://rufus.ie/" title="">Rufus</a>, however unfortunately that is not the case.</p>



<p>We found that when booting from a USB stick that was created using Ventoy or Rufus, ACI would fail to find the local package repository and end up asking you to configure a network installation source instead:</p>



<figure class="wp-block-image size-large"><a href="https://www.spheron1.uk/wp-content/uploads/2024/12/image.png"><img fetchpriority="high" decoding="async" width="1024" height="761" src="https://www.spheron1.uk/wp-content/uploads/2024/12/image-1024x761.png" alt="" class="wp-image-2252" srcset="https://www.spheron1.uk/wp-content/uploads/2024/12/image-1024x761.png 1024w, https://www.spheron1.uk/wp-content/uploads/2024/12/image-300x223.png 300w, https://www.spheron1.uk/wp-content/uploads/2024/12/image-768x570.png 768w, https://www.spheron1.uk/wp-content/uploads/2024/12/image-1536x1141.png 1536w, https://www.spheron1.uk/wp-content/uploads/2024/12/image-2048x1521.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>I&#8217;m not sure what makes the ACI installer so fragile compared to other Anaconda powered RHEL clones, but the fix for this is to avoid multi-boot solutions such as Ventoy and to write the ISO image directly to the USB stick without any modifications.</p>



<p>If using Rufus, then when creating your bootable USB flash drive, you will be prompted that Rufus has detected that you are using an ISOHybrid image and it will ask if you want to write in ISO mode (the default) or in DD mode:</p>



<figure class="wp-block-image size-full"><a href="https://www.spheron1.uk/wp-content/uploads/2024/12/image-1.png"><img decoding="async" width="548" height="270" src="https://www.spheron1.uk/wp-content/uploads/2024/12/image-1.png" alt="" class="wp-image-2253" srcset="https://www.spheron1.uk/wp-content/uploads/2024/12/image-1.png 548w, https://www.spheron1.uk/wp-content/uploads/2024/12/image-1-300x148.png 300w" sizes="(max-width: 548px) 100vw, 548px" /></a></figure>



<p>Make sure to select &#8220;Write in DD Image mode&#8221; and your ACI installer will work normally.</p>



<p>Of course if you&#8217;re on Linux or macOS, then you can just use the dd command and be confident that it isn&#8217;t going to try and be clever and mess around with the data that is being written to the USB stick.</p><p>The post <a href="https://www.spheron1.uk/2025/05/06/acronis-cyber-infrastructure-usb-installer/">Acronis Cyber Infrastructure USB installer</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2025/05/06/acronis-cyber-infrastructure-usb-installer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Upgrading NetBox with plugins installed</title>
		<link>https://www.spheron1.uk/2025/05/02/upgrading-netbox-with-plugins-installed/</link>
					<comments>https://www.spheron1.uk/2025/05/02/upgrading-netbox-with-plugins-installed/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Fri, 02 May 2025 14:44:10 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[DCIM]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[IPAM]]></category>
		<category><![CDATA[NetBox]]></category>
		<category><![CDATA[PIP]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[venv]]></category>
		<category><![CDATA[virtual environments]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=3060</guid>

					<description><![CDATA[<p>NetBox is an excellent open source IP Address Management (IPAM) and DataCenter Infrastructure Management (DCIM) with a huge amount of built-in functionality. For anything that isn&#8217;t covered out-of-the-box, there is also a wealth of third party plugins. One of these plugins is NetBox Inventory which adds asset tracking functionality, however the installation instructions seem to forget to mention that you&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2025/05/02/upgrading-netbox-with-plugins-installed/">Upgrading NetBox with plugins installed</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://github.com/netbox-community/netbox" title="">NetBox</a> is an excellent open source IP Address Management (IPAM) and DataCenter Infrastructure Management (DCIM) with a huge amount of built-in functionality. For anything that isn&#8217;t covered out-of-the-box, there is also a wealth of <a href="https://netboxlabs.com/netbox-plugins/" title="">third party plugins</a>.</p>



<p>One of these plugins is <a href="https://github.com/ArnesSI/netbox-inventory" title="">NetBox Inventory</a> which adds asset tracking functionality, however the installation instructions seem to forget to mention that you need to create an &#8220;/opt/netbox/local_requirements.txt&#8221; file with &#8220;netbox-inventory&#8221; in it (or append this to the file if it already exists) and this also isn&#8217;t covered by the <a href="https://netboxlabs.com/docs/netbox/en/stable/plugins/installation/" title="">official NetBox plugin installation documentation</a>.</p>



<p>If this isn&#8217;t done, then NetBox upgrades will fail during the database migrations because the Python venv gets recreated by the /opt/netbox/upgrade.sh script and so the &#8220;netbox-inventory&#8221; package will be missing:</p>



<pre class="wp-block-code"><code>Skipping local dependencies (local_requirements.txt not found)
Applying database migrations (python3 netbox/manage.py migrate)...
Traceback (most recent call last):
  File "/opt/netbox/netbox/netbox/settings.py", line 801, in &lt;module>
    plugin = importlib.import_module(plugin_name)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name&#91;level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "&lt;frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "&lt;frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap>", line 1324, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'netbox_inventory'

During handling of the above exception, another exception occurred:
netbox-inventory

Traceback (most recent call last):
  File "/opt/netbox/netbox/manage.py", line 10, in &lt;module>
    execute_from_command_line(sys.argv)
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 436, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/management/base.py", line 405, in run_from_argv
    parser = self.create_parser(argv&#91;0], argv&#91;1])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/management/base.py", line 368, in create_parser
    self.add_arguments(parser)
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/management/commands/migrate.py", line 50, in add_arguments
    choices=tuple(connections),
            ^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/utils/connection.py", line 73, in __iter__
    return iter(self.settings)
                ^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/utils/functional.py", line 47, in __get__
    res = instance.__dict__&#91;self.name] = self.func(instance)
                                         ^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/utils/connection.py", line 45, in settings
    self._settings = self.configure_settings(self._settings)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/db/utils.py", line 148, in configure_settings
    databases = super().configure_settings(databases)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/utils/connection.py", line 50, in configure_settings
    settings = getattr(django_settings, self.settings_name)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/conf/__init__.py", line 81, in __getattr__
    self._setup(name)
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/conf/__init__.py", line 68, in _setup
    self._wrapped = Settings(settings_module)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/conf/__init__.py", line 166, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name&#91;level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "&lt;frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "&lt;frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "&lt;frozen importlib._bootstrap_external>", line 999, in exec_module
  File "&lt;frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/opt/netbox/netbox/netbox/settings.py", line 804, in &lt;module>
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin netbox_inventory: Module not found. Check that the plugin module has been installed within the correct Python environment.</code></pre><p>The post <a href="https://www.spheron1.uk/2025/05/02/upgrading-netbox-with-plugins-installed/">Upgrading NetBox with plugins installed</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2025/05/02/upgrading-netbox-with-plugins-installed/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Removing APNs certificates in cPanel</title>
		<link>https://www.spheron1.uk/2025/04/24/removing-apns-certificates-in-cpanel/</link>
					<comments>https://www.spheron1.uk/2025/04/24/removing-apns-certificates-in-cpanel/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Thu, 24 Apr 2025 09:00:00 +0000</pubDate>
				<category><![CDATA[cPanel/WHM]]></category>
		<category><![CDATA[APNs]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apple Mac OS X]]></category>
		<category><![CDATA[Apple macOS]]></category>
		<category><![CDATA[Apple Mail]]></category>
		<category><![CDATA[cPanel]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[WHM]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=2976</guid>

					<description><![CDATA[<p>For many years cPanel has provided support for push notifications on Apple devices for IMAP, CalDAV and CardDAV using the Apple Push Notification service (APNs).In order to set this up, you need to provide APNs certificates for com.apple.mail, com.apple.calendar and com.apple.contact from Apple, which can be installed Service Configuration -> Manage Service SSL Certificates -> iOS Mail Push Notifications (APNs)&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2025/04/24/removing-apns-certificates-in-cpanel/">Removing APNs certificates in cPanel</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>For many years cPanel has provided support for push notifications on Apple devices for IMAP, CalDAV and CardDAV using the Apple Push Notification service (APNs).<br>In order to set this up, you need to provide APNs certificates for com.apple.mail, com.apple.calendar and com.apple.contact from Apple, which can be installed Service Configuration -> Manage Service SSL Certificates -> iOS Mail Push Notifications (APNs) in WHM.</p>



<p>Traditionally you needed an old copy of macOS Server in order to get these APNs certificates, but it was also possible to obtain the certificates using third party scripts such as <a href="https://github.com/scintill/macos-server-apns-certs">https://github.com/scintill/macos-server-apns-certs</a> which had reverse engineered the Apple APIs for issuing certificates.<br>Unfortunately, in October 2024 <a href="https://support.apple.com/en-us/101601" title="">Apple discontinued this API</a> and so it was no longer possible to issue new APNs certificates for com.apple.mail, com.apple.calendar and com.apple.contact.</p>



<p>Whilst it is annoying that we can&#8217;t provide push notifications to Apple users anymore thanks to these changes, this actually becomes a service affecting problem when these certificates expire as it causes any cPanel servers still using the old Calendar and Contacts Server (CCS) plugin (which behind the scenes is the old open source <a href="https://github.com/apple/ccs-calendarserver" title="">Apple/Darwin Calendar and Contacts Server</a>) to break as the &#8220;cpanel-ccs&#8221; service will stop and refuse to start with a message about the expired APNs certificates:</p>



<pre class="wp-block-code"><code>-- Unit cpanel-ccs.service has begun starting up.
Apr 22 17:57:34 myserverhostname.com ccs_init&#91;24103]: Using /opt/cpanel-ccs/.develop/virtualenv/bin/python as Python
Apr 22 17:57:34 myserverhostname.com ccs_init&#91;24103]: Starting server...
Apr 22 17:57:34 myserverhostname.com ccs_init&#91;24103]: /opt/cpanel-ccs/bin/caldavd  -f /opt/cpanel-ccs/conf/caldavd-dev.plist -P caldav -t Combined
Apr 22 17:57:36 myserverhostname.com ccs_init&#91;24103]: Reading configuration from file: /opt/cpanel-ccs/conf/caldavd-dev.plist
Apr 22 17:57:36 myserverhostname.com ccs_init&#91;24103]: APNS certificate expired /var/cpanel/ssl/caldav_apns/cert.pem
Apr 22 17:57:36 myserverhostname.com systemd&#91;1]: cpanel-ccs.service: control process exited, code=exited status=1
Apr 22 17:57:36 myserverhostname.com systemd&#91;1]: Failed to start Apple Calendar Server.
-- Subject: Unit cpanel-ccs.service has failed</code></pre>



<p>Frustratingly, cPanel doesn&#8217;t provide a way to remove an existing APNs certificate, only to install new ones&#8230; given that no new APNs certificates can be issued, this leaves us rather stuck!<br>Sadly this kind of lack of attention to detail for basic management tasks is common throughout cPanel.</p>



<p>Even more frustratingly, cPanel seem to have removed all of their documentation about the APNs feature,  so the only evidence that it ever existed are some very old posts on their badly mangled forum.</p>



<p>After a bit of poking around, I managed to find that you can manually remove the /var/cpanel/ssl/*apns/*.pem* certificate files and then update the CCS config in /opt/cpanel-ccs/conf/caldavd-dev.plist to remove any mention of them with the following commands:</p>



<pre class="wp-block-code"><code>rm -f /var/cpanel/ssl/*apns/*.pem*
/opt/cpanel-ccs/bin/rebuildccsconfig
systemctl restart cpanel-ccs.service</code></pre>



<p>After this, the  &#8220;cpanel-ccs&#8221; service will run normally again so CalDAV and CardDAV services are restored for all users.</p>



<p>The one last thing to do is go to Service Configuration -> Service Manager in WHM and disable &#8220;APNSPush&#8221; under &#8220;tailwatchd&#8221;.</p><p>The post <a href="https://www.spheron1.uk/2025/04/24/removing-apns-certificates-in-cpanel/">Removing APNs certificates in cPanel</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2025/04/24/removing-apns-certificates-in-cpanel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sendmail on Plesk &#8211; user is not allowed to send mail</title>
		<link>https://www.spheron1.uk/2020/05/28/sendmail-on-plesk-user-is-not-allowed-to-send-mail/</link>
					<comments>https://www.spheron1.uk/2020/05/28/sendmail-on-plesk-user-is-not-allowed-to-send-mail/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Thu, 28 May 2020 13:59:11 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=989</guid>

					<description><![CDATA[<p>I recently ran into a strange problem on a Plesk server where one subscription was inexplicably unable to send email using sendmail (which is what the PHP mail() function uses). The following was being logged in /var/logs/maillog for each attempt: plesk sendmail[1628571]: handlers_stderr: ERROR:__main__:Rejecting message: system user uid='&#60;user ID>&#8217; is not allowed to send mailplesk sendmail[1628571]: handlers_stderr: DATA REPLY:554:5.7.0 Your&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2020/05/28/sendmail-on-plesk-user-is-not-allowed-to-send-mail/">Sendmail on Plesk – user is not allowed to send mail</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>I recently ran into a strange problem on a Plesk server where one subscription was inexplicably unable to send email using sendmail (which is what the PHP mail() function uses).</p>



<p>The following was being logged in /var/logs/maillog for each attempt:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>plesk sendmail[1628571]: handlers_stderr: ERROR:__main__:Rejecting message: system user uid='&lt;user ID>&#8217; is not allowed to send mail<br>plesk sendmail[1628571]: handlers_stderr: DATA REPLY:554:5.7.0 Your message could not be sent. The user &lt;user name> is not allowed to send email.<br>plesk sendmail[1628571]: handlers_stderr: REJECT<br>plesk sendmail[1628571]: REJECT during call &#8216;limit-out&#8217; handler</p></blockquote>



<p>When calling sendmail from the command line, logged in as the user in question, I got:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Mail handler &#8216;limit-out&#8217; said: REPLY:554:5.7.0 Your message could not be sent. The user logbookloans247 is not allowed to send email.</p></blockquote>



<p>Plesk have a particularly useless knowledge base article which says that this is due to the mail service being disabled for the domain; https://support.plesk.com/hc/en-us/articles/360002410214-Unable-to-send-an-email-via-Wordpress-Rejecting-message-system-user-uid-xx-is-not-allowed-to-send-mail</p>



<p>This is nonsense &#8211; disabling the mail service is routine when email for a domain is hosted externally and so the server shouldn&#8217;t act as the final destination for email to this domain so as not to cause problems for any locally generated email destined for that domain.<br>Just to double check, I enabled the mail service on the domain, but unsurprisingly the problem persisted.</p>



<p>I checked several other Plesk servers and there were no other occurrences of this message in the mail logs, so this appeared to be an account specific problem.<br>I therefore tried fiddling with the outbound mail limits for the domain and the subscription, but no luck.</p>



<p>Eventually I stumbled on some users on the Plesk forums having a similar but unrelated problem, however this led me to the <em>/usr/local/psa/admin/sbin/mailmng-outgoing</em> command and through a bit of experimentation I found that the system user seemed to be missing, which I was able to add with the following command:</p>



<pre class="wp-block-preformatted">/usr/local/psa/admin/sbin/mailmng-outgoing --add-sysuser --main-domain-name=&lt;domain name> --sysuser=&lt;system user></pre>



<p>After doing this, sendmail and thus mail() worked as normal.</p><p>The post <a href="https://www.spheron1.uk/2020/05/28/sendmail-on-plesk-user-is-not-allowed-to-send-mail/">Sendmail on Plesk – user is not allowed to send mail</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2020/05/28/sendmail-on-plesk-user-is-not-allowed-to-send-mail/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Changing the locale in Ubuntu Server</title>
		<link>https://www.spheron1.uk/2019/04/03/979/</link>
					<comments>https://www.spheron1.uk/2019/04/03/979/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Wed, 03 Apr 2019 19:58:48 +0000</pubDate>
				<category><![CDATA[cPanel/WHM]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Ubuntu and Debian]]></category>
		<category><![CDATA[Apple Mac OS X]]></category>
		<category><![CDATA[Apple macOS]]></category>
		<category><![CDATA[cPanel]]></category>
		<category><![CDATA[locale]]></category>
		<category><![CDATA[macOS]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=979</guid>

					<description><![CDATA[<p>When logging into any cPanel server via SSH from an Ubuntu jump server I was seeing some strange warnings from Perl which I didn&#8217;t see when logging in from my laptop running macOS: perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = &#8220;C.UTF-8&#8221; are supported and installed on&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2019/04/03/979/">Changing the locale in Ubuntu Server</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>When logging into any cPanel server via SSH from an Ubuntu jump server I was seeing some strange warnings from Perl which I didn&#8217;t see when logging in from my laptop running macOS:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>perl: warning: Setting locale failed.<br> perl: warning: Please check that your locale settings:<br>     LANGUAGE = (unset),<br>     LC_ALL = (unset),<br>     LANG = &#8220;C.UTF-8&#8221;<br>     are supported and installed on your system.<br> perl: warning: Falling back to the standard locale (&#8220;C&#8221;).<br> perl: warning: Setting locale failed.<br> perl: warning: Please check that your locale settings:<br>     LANGUAGE = (unset),<br>     LC_ALL = (unset),<br>     LANG = &#8220;C.UTF-8&#8221;<br>     are supported and installed on your system.<br> perl: warning: Falling back to the standard locale (&#8220;C&#8221;).<br> perl: warning: Setting locale failed.<br> perl: warning: Please check that your locale settings:<br>     LANGUAGE = (unset),<br>     LC_ALL = (unset),<br>     LANG = &#8220;C.UTF-8&#8221;<br>     are supported and installed on your system.<br> perl: warning: Falling back to the standard locale (&#8220;C&#8221;).</p></blockquote>



<p>After a quick rummage, I found that the reason was that the &#8220;<em>LANG</em>&#8221; environment variable on my laptop was defaulting to &#8220;en_GB.UTF-8&#8221;, whilst on the Ubuntu jump server it was &#8220;C.UTF-8&#8221;.<br></p>



<p>The cPanel server runs some Perl stuff when bash starts and if it doesn&#8217;t like your locale settings, then it spits out these warnings.<br></p>



<p>The &#8220;<em>LANG</em>&#8221; environment variable is part of the locale system and so the best way to fix this is to update the locale settings configured on the Ubuntu jump server.</p>



<p>By default, SSH on both macOS and Ubuntu is configured to send the local &#8220;<em>LANG&#8221;</em> and &#8220;<em>LC_*&#8221;</em> environment variables used for locale settings to the remote system.</p>



<p>You can use the &#8220;<em>locale</em>&#8221; command to see your current locale settings as well as &#8220;<em>locale -a</em>&#8221; to see installed locales.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>$ locale<br> LANG=C.UTF-8<br> LANGUAGE=<br> LC_CTYPE=&#8221;C.UTF-8&#8243;<br> LC_NUMERIC=&#8221;C.UTF-8&#8243;<br> LC_TIME=&#8221;C.UTF-8&#8243;<br> LC_COLLATE=&#8221;C.UTF-8&#8243;<br> LC_MONETARY=&#8221;C.UTF-8&#8243;<br> LC_MESSAGES=&#8221;C.UTF-8&#8243;<br> LC_PAPER=&#8221;C.UTF-8&#8243;<br> LC_NAME=&#8221;C.UTF-8&#8243;<br> LC_ADDRESS=&#8221;C.UTF-8&#8243;<br> LC_TELEPHONE=&#8221;C.UTF-8&#8243;<br> LC_MEASUREMENT=&#8221;C.UTF-8&#8243;<br> LC_IDENTIFICATION=&#8221;C.UTF-8&#8243;<br> LC_ALL=</p><p>$ locale -a<br>  C<br>  C.UTF-8<br>  POSIX<br>  en_US.utf8</p></blockquote>



<p>In my case I wanted to use en_GB.utf8, which wasn&#8217;t installed. You can use the &#8220;<em>locale-gen</em>&#8221; command to generate locales, but they are also provided in official Ubuntu packages , so I installed the &#8220;<em>language-pack-en</em>&#8221; package from the Ubuntu repositories using APT.<br>This added several English locales and then I could reconfigure Ubuntu to use the one that I needed.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>$ apt-get install language-pack-en<br> Reading package lists… Done<br> Building dependency tree<br> Reading state information… Done<br> The following additional packages will be installed:<br>   language-pack-en-base<br> The following NEW packages will be installed:<br>   language-pack-en language-pack-en-base<br> 0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded.<br> Need to get 420 kB of archives.<br> After this operation, 3756 kB of additional disk space will be used.<br> Do you want to continue? [Y/n] y<br> Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 language-pack-en-base all 1:18.04+20180712 [419 kB]<br> Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 language-pack-en all 1:18.04+20180712 [1904 B]<br> Fetched 420 kB in 0s (3606 kB/s)<br> Selecting previously unselected package language-pack-en-base.<br> (Reading database … 50814 files and directories currently installed.)<br> Preparing to unpack …/language-pack-en-base_1%3a18.04+20180712_all.deb …<br> Unpacking language-pack-en-base (1:18.04+20180712) …<br> Selecting previously unselected package language-pack-en.<br> Preparing to unpack …/language-pack-en_1%3a18.04+20180712_all.deb …<br> Unpacking language-pack-en (1:18.04+20180712) …<br> Setting up language-pack-en (1:18.04+20180712) …<br> Setting up language-pack-en-base (1:18.04+20180712) …<br> Generating locales (this might take a while)…<br>   en_AG.UTF-8… done<br>   en_AU.UTF-8… done<br>   en_BW.UTF-8… done<br>   en_CA.UTF-8… done<br>   en_DK.UTF-8… done<br>   en_GB.UTF-8… done<br>   en_HK.UTF-8… done<br>   en_IE.UTF-8… done<br>   en_IL.UTF-8… done<br>   en_IN.UTF-8… done<br>   en_NG.UTF-8… done<br>   en_NZ.UTF-8… done<br>   en_PH.UTF-8… done<br>   en_SG.UTF-8… done<br>   en_ZA.UTF-8… done<br>   en_ZM.UTF-8… done<br>   en_ZW.UTF-8… done<br> Generation complete.</p><p>$ locale -a<br>  C<br>  C.UTF-8<br>  en_AG<br>  en_AG.utf8<br>  en_AU.utf8<br>  en_BW.utf8<br>  en_CA.utf8<br>  en_DK.utf8<br>  en_GB.utf8<br>  en_HK.utf8<br>  en_IE.utf8<br>  en_IL<br>  en_IL.utf8<br>  en_IN<br>  en_IN.utf8<br>  en_NG<br>  en_NG.utf8<br>  en_NZ.utf8<br>  en_PH.utf8<br>  en_SG.utf8<br>  en_US.utf8<br>  en_ZA.utf8<br>  en_ZM<br>  en_ZM.utf8<br>  en_ZW.utf8<br>  POSIX<br> $ update-locale LANG=en_GB.utf8</p></blockquote>



<p>The locale settings are stored in &#8220;<em>/etc/default/locale</em>&#8220;, so you can either edit this file manually or use the handy &#8220;<em>update-locale</em>&#8221; utility to do it for you.<br>Either way, once you start a new session, you are using the new locale settings and Perl no longer complains when you SSH to a cPanel server.</p><p>The post <a href="https://www.spheron1.uk/2019/04/03/979/">Changing the locale in Ubuntu Server</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2019/04/03/979/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ProCurve SSH &#8211; no matching cipher found</title>
		<link>https://www.spheron1.uk/2018/09/24/procurve-ssh-no-matching-cipher-found/</link>
					<comments>https://www.spheron1.uk/2018/09/24/procurve-ssh-no-matching-cipher-found/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Mon, 24 Sep 2018 10:48:09 +0000</pubDate>
				<category><![CDATA[HP ProCurve]]></category>
		<category><![CDATA[ciphers]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[HPE]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[ProCurve]]></category>
		<category><![CDATA[ProVision]]></category>
		<category><![CDATA[SSH]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=971</guid>

					<description><![CDATA[<p>I recently ran into a strange problem where I suddenly couldn&#8217;t SSH to any of our HPE ProCurve 2800 series (2824, 2848) devices from either macOS or Linux. I&#8217;m still not really sure what started this as OpenSSH definitely hasn&#8217;t been updated recently on the Linux client device at the very least, so I don&#8217;t see any reason for the&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2018/09/24/procurve-ssh-no-matching-cipher-found/">ProCurve SSH – no matching cipher found</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>I recently ran into a strange problem where I suddenly couldn&#8217;t SSH to any of our HPE ProCurve 2800 series (2824, 2848) devices from either macOS or Linux. I&#8217;m still not really sure what started this as OpenSSH definitely hasn&#8217;t been updated recently on the Linux client device at the very least, so I don&#8217;t see any reason for the list of ciphers supported on the client to have changed.</p>
<p>Anyway, the error message given by the OpenSSH client was:</p>
<blockquote><p>Unable to negotiate with port 22: no matching cipher found. Their offer: des,3des-cbc</p></blockquote>
<p>These ProCurves are pretty old and their SSH support is rather limited (1024 bit keys for example), so it&#8217;s not hugely surprising that their supported ciphers are also old and crappy.<br />
Luckily, with OpenSSH you can specify the cipher(s) that you want to use on the command line when you&#8217;re connecting:</p>
<blockquote><p>ssh -c 3des-cbc</p></blockquote>
<p>This fixed the issue and lets me connect, but isn&#8217;t particularly convenient. However, you can also specify this in your ~/.ssh/config file so that it is applied automatically:</p>
<blockquote><p>Host &lt;blah&gt;<br />
Ciphers 3des-cbc</p></blockquote>
<p>Just enter one or more hosts to match against (separated by spaces) and OpenSSH will automatically apply the specified options when connecting to any of them.</p><p>The post <a href="https://www.spheron1.uk/2018/09/24/procurve-ssh-no-matching-cipher-found/">ProCurve SSH – no matching cipher found</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2018/09/24/procurve-ssh-no-matching-cipher-found/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 17/28 objects using Redis
Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Database Caching 14/28 queries in 0.019 seconds using Redis

Served from: spheron1.uk @ 2026-04-30 06:30:28 by W3 Total Cache
-->