<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>lets encrypt — LowEndSpirit</title>
        <link>https://lowendspirit.com/index.php?p=/</link>
        <pubDate>Thu, 04 Jun 2026 05:27:33 +0000</pubDate>
        <language>en</language>
            <description>lets encrypt — LowEndSpirit</description>
    <atom:link href="https://lowendspirit.com/index.php?p=/discussions/tagged/lets-encrypt/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Anyone doing LetsEncrypt with round robin DNS?</title>
        <link>https://lowendspirit.com/index.php?p=/discussion/10740/anyone-doing-letsencrypt-with-round-robin-dns</link>
        <pubDate>Wed, 08 Apr 2026 22:01:45 +0000</pubDate>
        <category>Technical</category>
        <dc:creator>WSS</dc:creator>
        <guid isPermaLink="false">10740@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Hi Folks.</p>

<p>I've got this zany idea of getting a backup service running on a NAT box behind HAProxy as well as the front-end with it's own dedicated IPs.</p>

<p>I don't really want to rely on rsync, but I probably will have to to ensure data propagation properly- however, I don't really want to do that for SSL certificates for various reasons.  I'm thinking possibly DNS challenge, or being really, really lazy and just letting either box submit it's certbot requests and waiting for the luck of the draw renew them every other day or so.</p>

<p>Thoughts? Implementations on your side?</p>
]]>
        </description>
    </item>
    <item>
        <title>A Bash Script to Auto Renew Minio SSL</title>
        <link>https://lowendspirit.com/index.php?p=/discussion/6499/a-bash-script-to-auto-renew-minio-ssl</link>
        <pubDate>Wed, 20 Sep 2023 04:46:04 +0000</pubDate>
        <category>Technical</category>
        <dc:creator>cloudpap</dc:creator>
        <guid isPermaLink="false">6499@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Hello everyone,</p>

<p>I wrote a script using bash to help renew lets encrypt ssl issued using on a minio instance. Minio is an s3 compatible storage. Basically, the ssl is issued via certbot but files need to be moved around. I found myself every now and then having my minio ssl expired and I didn't know. so i created this script to check daily when the hostname ssl expires and to renew it automatically. hope it helps someone with a similar need.</p>

<pre><code>#!/bin/bash
PUSHOVER_API_TOKEN='xxxxx'
PUSHOVER_API_USER='xxxx'

HOSTNAME=$(hostname)


DEFAULT_PRIVATEKEY_LOCATION=/etc/letsencrypt/live/$HOSTNAME/privkey.pem
DEFAULT_CERTIFICATE_LOCATION=/etc/letsencrypt/live/$HOSTNAME/fullchain.pem

MINIO_USERNAME=minio-user
MINIO_PRIVATEKEY_LOCATION=/etc/minio/certs/private.key
MINIO_CERTIFICATE_LOCATION=/etc/minio/certs/public.crt


certexpiredays(){
    EXPIREDATE=$(openssl x509 -in $MINIO_CERTIFICATE_LOCATION -enddate -noout | sed "s/.*=\(.*\)/\1/")
    EXPIRE_DATE_IN_SECONDS=$(date -d "${EXPIREDATE}" +%s)
    NOW_IN_SECONDS=$(date -d now +%s)
    DATE_DIFF_IN_SECONDS=$(( (EXPIRE_DATE_IN_SECONDS - NOW_IN_SECONDS) / 86400 ))

    echo $DATE_DIFF_IN_SECONDS
}


notify(){
    STATUS=$1

    local TITLE="Renewal of Minio SSL"
    if [[  $STATUS -eq 0  ]]
    then
        local MESSAGE="SUCCESS! Minio SSL successfully replenished for https://$HOSTNAME:9000"
    else
        local MESSAGE="FAILED! Could not complete SSL renewal for minio. Status code: $STATUS for https://$HOSTNAME:9000"
    fi
    local SOUND=siren
    local TIME=$(date)
    local PRIORITY=0
    curl -s \
      --form-string "token=$PUSHOVER_API_TOKEN" \
      --form-string "user=$PUSHOVER_API_USER" \
      --form-string "title=$TITLE" \
      --form-string "message=$MESSAGE" \
      --form-string "timestamp=$TIME" \
      --form-string "sound=$SOUND" \
      --form-string "priority=$PRIORITY" \
      https://api.pushover.net/1/messages.json
}


#0.Check if renewal is needed in the first place

DAYS_TO_SSL_EXPIRY=$(certexpiredays)


if [[ (( $DAYS_TO_SSL_EXPIRY &lt; 5 ))]]
then
    #1.Renew SSL
    echo "===Commencing SSL renewal...==="

    echo 2 | sudo certbot certonly --standalone -d $HOSTNAME

    if [ $? -eq 0 ]
    then
        echo "==&gt;OK! SSL for minio has been requested successfully."
        echo "==&gt;Copying SSL files...."

        #2. Copy SSL files to correct directory
        sudo cp -v $DEFAULT_PRIVATEKEY_LOCATION $MINIO_PRIVATEKEY_LOCATION
        sudo cp -v $DEFAULT_CERTIFICATE_LOCATION $MINIO_CERTIFICATE_LOCATION

        if [ $? -eq 0 ]
        then
            echo "==&gt;OK! SSL files copied successfully..."

            #3. Change ownership of the SSLs
            sudo chown $MINIO_USERNAME:$MINIO_USERNAME $MINIO_PRIVATEKEY_LOCATION
            sudo chown $MINIO_USERNAME:$MINIO_USERNAME $MINIO_CERTIFICATE_LOCATION

            if [ $? -eq 0 ]
            then
                #4. Restart minio service
                sudo systemctl restart minio

                pgrep minio &gt;/dev/null 2&gt;&amp;1
                STATE=$(echo $?)

                if [[  $STATE == 0  ]]
                then
                    echo "==&gt;OK! Minio restarted successfully..."

                    echo "==&gt;SUCCESS! SSL for minio replenished successfully."
                    notify 0
                else
                    echo "==&gt;FAILED! Could not restart minio."
                    notify 1
                    exit
                fi
            fi
        else
            echo "==&gt;FAILED! There was an error copying SSL files."
            notify 2
            exit
        fi

    else
        echo "==&gt;FAILED! There was an error requesting for SSL for minio."
        notify 3
        exit
    fi
else
    echo "==&gt;SSL for minio still valid for $DAYS_TO_SSL_EXPIRY days. Nothing to do. Bye"
    exit
fi
</code></pre>
]]>
        </description>
    </item>
    <item>
        <title>Lets Encrypt removes compatilibility with older browsers</title>
        <link>https://lowendspirit.com/index.php?p=/discussion/2926/lets-encrypt-removes-compatilibility-with-older-browsers</link>
        <pubDate>Sat, 15 May 2021 22:29:53 +0000</pubDate>
        <category>Industry News</category>
        <dc:creator>mikho</dc:creator>
        <guid isPermaLink="false">2926@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Hello from the staff at Let's Encrypt.</p>

<p>On September 30, there will be a change in how older browsers and <br />
devices trust Let's Encrypt certificates, resulting in a minor decrease <br />
in compatibility. If you run a typical website, you won't notice a <br />
difference. Devices and browsers running up-to-date software will <br />
continue working fine, and we've taken steps to make sure the vast <br />
majority of older devices will too. If you run a large website, or need <br />
to support less common software (particularly non-browser software), <br />
you'll want to read about the details at:</p>

<p><a href="https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/" rel="nofollow">https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/</a></p>

<p>In either case, no action is required from you. We're letting you know <br />
so you can provide answers to any questions your site visitors may have.</p>

<p>Here is a sample hostname from one of your current Let's Encrypt <br />
certificates:</p>

<p>Since 2015 we've served the world with 1.6 billion free certificates, <br />
each one providing security and privacy to people on the Web. It's work <br />
that's 100% funded by charitable donations since we are a nonprofit. If <br />
your company is interested in sponsorship, please email <br />
sponsor@letsencrypt.org. If you can make a donation, we ask that you <br />
consider supporting our work today: <a href="https://letsencrypt.org/donate/" rel="nofollow">https://letsencrypt.org/donate/</a> <br />
Thank you.</p>

<ul>
<li>The Let's Encrypt team</li>
</ul>
]]>
        </description>
    </item>
   </channel>
</rss>
