Let’s Encryptでdehydratedを使う方法

環境

Amazon Linux 2 Apache/2.4.48

設置

cd /opt
git clone https://github.com/lukas2511/dehydrated.git
fatal: destination path 'dehydrated' already exists and is not an empty directory.

のようなエラーが出るときはディレクトリの中身になにかファイルが存在していないか、既に設置されていないか確かめよう。

Alias設定

ドメイン認証ファイルを設置するディレクトリを作成する。

mkdir -p /var/www/dehydrated/

-pは、必要に応じて(存在しない場合)親ディレクトリも作成するというオプションです。

vim /etc/httpd/conf.d/dehydrated.conf
Alias /.well-known/acme-challenge /var/www/dehydrated

<Directory "/var/www/dehydrated">
    AllowOverride None
    Require all granted
</Directory>

dehydratedの設定

まずはこのファイルを編集。

vim /opt/dehydrated/config
WELLKNOWN="/var/www/dehydrated"
CA="https://acme-v02.api.letsencrypt.org/directory"

次にこちらも編集。 example.comは実際に使うドメインで。

vim /opt/dehydrated/domains.txt
example.com

発行

登録

cd /opt/dehydrated/
./dehydrated --register --accept-terms

証明書発行

cd /opt/dehydrated/
./dehydrated -c

証明書設定

シンボリックリンクのファイルを設定する。

ここからは一例。違う場合もあり。

以下のファイルを編集して、最後に追加する。

vim /etc/httpd/conf.d/ssl.conf
<VirtualHost *:443>
    DocumentRoot /var/www/html
    ServerName {ドメイン}
    SSLEngine on
    SSLCertificateFile  /opt/dehydrated/certs/example.com/fullchain.pem
    SSLCACertificateFile /opt/dehydrated/certs/example.com/chain.pem
    SSLCertificateKeyFile  /opt/dehydrated/certs/example.com/privkey.pem
</VirtualHost>

それぞれの指定しているディレクトリのexample.comは{ドメイン}と同じにしてください。

これで、導入できました。実際にアクセスして証明書を確かめてみよう。