Cara kerja Stateless mode adalah dengan cara mengidentifikasi account key yang diberikan pada saat --register-account
. Hampir mirip dengan HTTP/HTTPS validation.
Jadi Anda perlu konfigurasikan web server agar account key tersebut dapat diakses dan diverifikasi melalui path .well-known/acme-challenge/
Gunakan parameter --register-account
untuk mendapatkan ACCOUNT_THUMBPRINT
$ acme.sh --register-account
[Mon Feb 20 04:32:52 UTC 2023] Registering account
[Mon Feb 20 04:32:58 UTC 2023] Already registered
[Mon Feb 20 04:32:58 UTC 2023] ACCOUNT_THUMBPRINT='6fXAG9VyG0IahirPEU2ZerUtItW2DHzDzD9wZaEKpqd'
Konfigurasi web server agar dapat mengakses thumbprint
NGINX #
Tambahkan baris berikut pada nginx.conf
atau file virtualhost:
http {
...
server {
...
location ~ ^/\.well-known/acme-challenge/([-_a-zA-Z0-9]+)$ {
default_type text/plain;
return 200 "$1.6fXAG9VyG0IahirPEU2ZerUtItW2DHzDzD9wZaEKpqd";
}
...
}
}
CADDY #
Tambahkan baris berikut pada pada file Caddyfile
:
example.com {
@achallenge {
path_regexp ch ^/\.well-known/acme-challenge/([-_a-zA-Z0-9]+)$
}
respond @achallenge "{re.ch.1}.6fXAG9VyG0IahirPEU2ZerUtItW2DHzDzD9wZaEKpqd"
APACHE #
Tambahkan baris pada httpd.conf
atau file konfig vhost:
LoadModule php7_module libexec/apache2/libphp7.so
...
<VirtualHost *:80>
...
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
...
<Directory "/PATH/TO/WWW/ROOT/.well-known/acme-challenge/">
RewriteEngine On
RewriteRule "^[-_a-zA-Z0-9]+$" "index.php"
</Directory>
...
</VirtualHost>
...
Lalu tambahkan file pada /PATH/TO/WWW/ROOT/.well-known/acme-challenge/index.php
:
<?php
header("Content-Type: text/plain");
$token = array_pop(explode('/',$_SERVER['REQUEST_URI']));
echo "$token.6fXAG9VyG0IahirPEU2ZerUtItW2DHzDzD9wZaEKpqd";
?>
Apabila pada proses verify gagal maka coba buat file .htaccess pada path acme-challenge lalu isi RewriteRule yang sama
Issue cert
acme.sh --issue -d example.com --stateless