Author name: Dan Langille

I've been playing with computers since I read an Elementary Electronics magazine way back in the 1970s. I started contributing to open source projects in 1998. After that, I gradually moved from being a software developer to being a systems administrator.

cert-puller: using anvil to pull down & install new certificates, then restart services

Now that I have configured my webserver to pull down any new certificates, now it’s time to configure my clients to pull certificates from the webserver. In my quest for a centralized Let’s Encrypt solution, I’ve created the FreeBSD port for acme.sh (an ACME client for Let’s Encrypt) and anvil, a tool for distributing and installing those certificates. In previous blog posts, I’ve described various steps leading up to this: Creating a TXT […]

cert-puller: using anvil to pull down & install new certificates, then restart services Read More »

anvil – copying the certificates to the website

In my Let’s Encrypt implementation, I am using a centralized acme.sh solution which generates all the certificates I use and authenticates via dns-01 challenges. I use anvil to distribute those certificates. In this post, I will describe how the website pulls the certificates down from the rsync-jail. I will assume you have read my previous post where I describe the cert-shifter process. Configuring the jail host This solution assumes that the acme.sh jail

anvil – copying the certificates to the website Read More »

cert-shifter: copying certificates from acme.sh to a fresh directory

I have already described how I use acme.sh to obtain SSL certificates from Let’s Encrypt. Today, I’m going to show you how I use anvil to copy those certificates from the original location to another directory, which is then used for rsync by another jail. Throughout this blog post, it is assumed that the cert-shifter will be run as the anvil user. Please adjust to suit your choices. Why shift certificates? As part

cert-shifter: copying certificates from acme.sh to a fresh directory Read More »

Introducing anvil – Tools for distributing ssl certificates

I’m in the end-stages of finishing off my centralized Let’s Encrypt solution and I’ve released my code as an open source project named anvil. I’ve also created a FreeBSD port. In this post, I outline the anvil tools and how I use them. In future posts, I will detail the individual components, some of which have already appeared in my blog. Why centralized After reading about the FreeBSD cluster’s use of Let’s Encrypt,

Introducing anvil – Tools for distributing ssl certificates Read More »

When mv can’t mv – Let’s Encrypt

Last night I uploaded my collect-certs code to Gitub. Today, I discovered a problem with invoking mv on multiple files. The code in question is around lines 40-42 and I’m including some of my debugging code here: When I run this script, I see this output: Of note, that’s two errors: one from mv and the second from rmdir. Now, if I manually run that command: /bin/mv -f /var/db/certs-for-rsync/tmp/example.com/* /var/db/certs-for-rsync/certs/example.com … it works.

When mv can’t mv – Let’s Encrypt Read More »

acme.sh: getting free SSL certificates – installation configuration on FreeBSD

This blog post describes my Let’s Encrypt solution which uses acme.sh and dns-01 challenges to obtain SSL certificates. If you are using HTTP challenges, this post might still be useful, but your configuration will differ slightly. Let’s Encrypt is a certificate authority which has become wildly popular since it was launched in April 2016 (just a short 14 months ago). Why so popular? It provides a secure way to offer free SSL certificates.

acme.sh: getting free SSL certificates – installation configuration on FreeBSD Read More »

Configuring my BIND/named DNS servers to operate from a hidden master via VPN for Let’s Encrypt

What is a hidden DNS master? If you need to ask that, this is not the blog post for you. This post assumes you already know how to configure DNS and just want ideas for your own hidden master. It also assumes the networking, VPN, and firewall are pre-configured for this. This blog post is mostly about named/BIND. For the record, I am using bind99-9.9.10P1. In my previous blog post, you’ll see how

Configuring my BIND/named DNS servers to operate from a hidden master via VPN for Let’s Encrypt Read More »

Creating a TXT only nsupdate connection for Let’s Encrypt

I’m in the process of designing my own centralized Let’s Encrypt solution. It was Peter Wemm’s blog post about Let’s Encrypt in the FreeBSD cluster which got me started down this road. My rough notes are this this gist. This blog post assumes you are already familiar with Let’s Encrypt and especially with the dns-01 challenge. This previous post might also be useful. In this post, I’ll show you have to generate a

Creating a TXT only nsupdate connection for Let’s Encrypt Read More »

My first big Tarsnap backup

NOTE: I wrote this post nearly two years ago, in May 2015. It has been sitting ignored and unloved in my Drafts. I’ve just published it today. I’m big on backups and I use Bacula. I have about 18 TB on about 350 tapes and about 10 TB of backups on disk. I want more. I last used Tarsnap back in July 2010 (I know that because I found the old Tarsnap registration

My first big Tarsnap backup Read More »

Accessing your Time Capsule when on a different subnet

Last night, when I got my FreeBSD & ZFS based Time Capsule running, I had to connect my laptop to the same network as the server in question. This is not ideal. My usual work flow: connect to the WIFI, then connect to the VPN, then I get access to those services. These are different subnets, so the Netatalk broadcast does not traverse the switch. It stays inside so my laptop does not

Accessing your Time Capsule when on a different subnet Read More »

Scroll to Top