Skip to content

Apache Setup

For servers running Apache.

1. Set Variables

bash
export ACME_SERVER="your Server URL"
export EAB_KID="your EAB MAC ID"
export EAB_HMAC_KEY="your EAB MAC key"
export EMAIL="admin@example.com"
export DOMAIN="example.com"
export WEBROOT="/var/www/example.com/public"

2. Install acme.sh

bash
curl https://get.acme.sh | sh -s email="$EMAIL"

3. Register the ACME Account

bash
~/.acme.sh/acme.sh --register-account \
  --server "$ACME_SERVER" \
  --eab-kid "$EAB_KID" \
  --eab-hmac-key "$EAB_HMAC_KEY" \
  -m "$EMAIL"

4. Issue the Certificate

bash
~/.acme.sh/acme.sh --issue \
  --server "$ACME_SERVER" \
  -d "$DOMAIN" \
  -w "$WEBROOT"

5. Install the Certificate

bash
sudo mkdir -p "/etc/ssl/12ssl/$DOMAIN"

sudo ~/.acme.sh/acme.sh --install-cert -d "$DOMAIN" \
  --key-file "/etc/ssl/12ssl/$DOMAIN/privkey.pem" \
  --fullchain-file "/etc/ssl/12ssl/$DOMAIN/fullchain.pem" \
  --reloadcmd "systemctl reload apache2 || systemctl reload httpd"

6. Configure Apache

Ubuntu / Debian:

bash
sudo a2enmod ssl rewrite
sudo nano /etc/apache2/sites-available/example.com.conf

Example:

apache
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public

    SSLEngine on
    SSLCertificateFile /etc/ssl/12ssl/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/ssl/12ssl/example.com/privkey.pem
</VirtualHost>

Enable and reload:

bash
sudo a2ensite example.com.conf
sudo apachectl configtest
sudo systemctl reload apache2

CentOS / AlmaLinux / Rocky Linux:

bash
sudo apachectl configtest
sudo systemctl reload httpd

7. Check

bash
curl -I "https://$DOMAIN"

Open:

text
https://example.com

Released under internal 12SSL documentation guidelines.