Skip to content
This repository was archived by the owner on Jun 9, 2026. It is now read-only.

Commit 1a770a9

Browse files
author
Stefan Eissing
committed
* release bump to 2.4.14
* documentation of tailscale feature
1 parent 6592467 commit 1a770a9

4 files changed

Lines changed: 56 additions & 4 deletions

File tree

ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
v2.4.14
2+
----------------------------------------------------------------------------------------------------
3+
* Added support for tailscale (https://tailscale.com) certificates to have
4+
trusted access to your internal domain names. See README.md for more
5+
information on how to set this up.
16
* Fix for a memory leak in handling of JSON arrays. This leak was mainly
27
triggered by the additions to the `server-status` handler and lead to
38
increased process sizes with each request of a status page.

README.md

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This repository contains `mod_md`, a module for Apache httpd that helps you to m
1212

1313
Both functions work well together, but you can use one without the other. If you do not want the ACME/Let's Encrypt parts, there is ["Just the Stapling, Mam!"](#just-the-stapling-mam)
1414

15-
***NEW:*** `mod_md` has added support for [External Account Binding](#a-key-to-bind-them) that let's you use Apache ACME with more CAs!
15+
***NEW:*** users of [tailscale](https://tailscale.com) secure networks can use trusted certificates for their internal domain names. See [the chapter about tailscale](#tailscale) for more information.
1616

1717
## Thanks
1818

@@ -57,6 +57,7 @@ into your Apache server log where `mod_md` logs its version at startup.
5757
* [Get a Wildcard Cert](#how-to-get-a-wildcard-cert)
5858
* [Use Other Certificates](#how-to-use-other-certificates)
5959
* [Have two certs for one Host](#how-to-have-two-certs-for-one-host)
60+
* [Use tailscale certificates](#tailscale)
6061
- Stapling
6162
* [Staple all my certificates](#how-to-staple-all-my-certificates)
6263
* [Staple some of my certificates](#how-to-staple-some-of-my-certificates)
@@ -720,6 +721,52 @@ needs to track those, they will not come without restrictions. But several EAB v
720721
same time seems common practise.
721722

722723

724+
# Tailscale
725+
726+
The secure networking provided by [tailscale](https://tailscale.com) allows you to connect your own devices
727+
in a very easy way without fiddling with firewalls and without public IP addresses. It's a bit of magic.
728+
729+
In its recent versions, it can also give you domain names and your own subdomain underneath the `*.ts.net` suffix. Something like `*.headless-chicken.ts.net` can be yours and your machines appear as, for example, `my-raspberry.headless-chicken.ts.net` in your own network.
730+
731+
But if you run a webserver on it, you'd need a certificate that your browser accept. And tailscale also does
732+
that magic and negotiates with Let's Encrypt to provide you with a valid one (and renews it).
733+
734+
Via `mod_md`, you can make use of that service (if you are on **linux** for now). To stick with the example above, you'd configure:
735+
736+
```
737+
<MDomain my-raspberry.headless-chicken.ts.net>
738+
MDCertificateProtocol tailscale
739+
</MDomain>
740+
741+
<VirtualHost *:443>
742+
ServerName my-raspberry.headless-chicken.ts.net
743+
SSLEnging on
744+
...
745+
</VirtualHost>
746+
```
747+
748+
This works just like certificates from Let's Encrypt. `mod_md` will give you status information on the cert
749+
and also try to renew it and give you notifications via `MDMessageCmd`. OCSP stapling should be available as
750+
well, but I have not tested that.
751+
752+
One thing to beware: Apache's attempts to renew, e.g. get a new certificate from the tailscale demon, are
753+
not necessarily in sync. You might want to adjust your `MDRenewWindow` to only trigger right after tailscale
754+
should have gotten a new one.
755+
756+
Also, for server restarts, the same rules apply as for ACME certificates.
757+
758+
Is there a dependency between the Apache service and your tailscale daemon? **No**. Both will
759+
start and operate independent of each other. Apache will start also if your tailscale daemon is down. Just like your Apache will work when Let's Encrypt is not reachable for a while.
760+
761+
**Caveat**: if your Apache is *also* reachable from the public internet, the tailscale domain name will not
762+
give you enhanced security. Anyone who can contact your server can ask for any domain in `*.ts.net`. There are
763+
a myriad of options to make secure setups and you should consult the tailscale documentation on how/when/if
764+
security in a tailscale network can be managed.
765+
766+
**Credits**: the nice and friendly [Caddy server](https://caddyserver.com) was the first HTTP server to add
767+
tailscale support a couple of days ago. Which inspired me to strive for second place.
768+
769+
723770
# Just the Stapling, Mam!
724771

725772
If you just want to use the new OCSP Stapling feature of the module, load it into your apache and configure

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
#
1515

1616
AC_PREREQ([2.69])
17-
AC_INIT([mod_md], [2.4.13], [stefan.eissing@greenbytes.de])
17+
AC_INIT([mod_md], [2.4.14], [stefan.eissing@greenbytes.de])
1818

1919
LT_PREREQ([2.2.6])
2020
LT_INIT()

src/md_version.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@
2727
* @macro
2828
* Version number of the md module as c string
2929
*/
30-
#define MOD_MD_VERSION "2.4.13-git"
30+
#define MOD_MD_VERSION "2.4.14-git"
3131

3232
/**
3333
* @macro
3434
* Numerical representation of the version number of the md module
3535
* release. This is a 24 bit number with 8 bits for major number, 8 bits
3636
* for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
3737
*/
38-
#define MOD_MD_VERSION_NUM 0x02040d
38+
#define MOD_MD_VERSION_NUM 0x02040e
3939

4040
#define MD_ACME_DEF_URL "https://acme-v02.api.letsencrypt.org/directory"
4141
#define MD_TAILSCALE_DEF_URL "file://localhost/var/run/tailscale/tailscaled.sock"

0 commit comments

Comments
 (0)