Junkie Work

access: 181446

Webサーバ(SSL対応)


このご時世、httpのみではだめなようですので、httpとhttpsの両方でアクセスできるようにします。

複数のドメインで利用するために、最初からVirtualHostで設定します。

自身での証明ではクライアントのブラウザでエラーとなるため、無料の認証局(Let's Encrypt)を利用します。
(詳細は
https://letsencrypt.org/ja/getting-started/を参照)

Web Serverインストール

Web Serverのインストールはpkgを利用します。

# pkg install apache24
# sysrc apache24_enable="yes"

Certbotインストール

Certbotのインストールもpkgで行います。

# pkg install security/py-certbot-apache

VirtualHostの設定(HTTP)

VirtualHostの設定をします。
/usr/local/etc/apache24/Includes/junkie.work.conf を新規に作成

<VirtualHost *:80>
    DocumentRoot /usr/local/www/junkie.work/data/
    <Directory "/usr/local/www/junkie.work/data">
        Require all granted
    </Directory>
    ServerName junkie.work
    ServerAlias www.junkie.work
</VirtualHost>

/usr/local/www/junkie.work/data/ を作成しておきます。

Web Server(HTTP)起動

証明書の作成用にWeb Serverを起動しておきます。

# service apache24 start

認証に使う証明書などを生成します

ドメイン名と、VirtualHostのディレクトリを指定して証明書を発行 (ここでは、ドメインjunkie.work と www.junkie.work を指定 )

# ccertbot certonly --apache -d junkie.work -d www.junkie.work --register-unsafely-without-email -w /usr/local/www/junkie.work/data/

指定したドメインのディレクトリにファイルができていることを確認

  /usr/local/etc/letsencrypt/live/junkie.work/fullchain.pem
  /usr/local/etc/letsencrypt/live/junkie.work/privkey.pem

発行された証明書を利用します

VirtualHostの設定をして、ドメインの証明書を指定
/usr/local/etc/apache24/Includes/junkie.work.conf に、SSLの設定も追加

<VirtualHost *:443>
    DocumentRoot /usr/local/www/junkie.work/data/
    <Directory "/usr/local/www/junkie.work/data">
        Require all granted
    </Directory>
    ServerName junkie.work
    ServerAlias www.junkie.work

    SSLCertificateKeyFile /usr/local/etc/letsencrypt/live/junkie.work/privkey.pem
    SSLCertificateFile /usr/local/etc/letsencrypt/live/junkie.work/fullchain.pem
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /usr/local/www/junkie.work/data/
    <Directory "/usr/local/www/junkie.work/data">
        Require all granted
    </Directory>
    ServerName junkie.work
    ServerAlias www.junkie.work
</VirtualHost>

/var/www/junkie.work/data/ 配下にドキュメントを配置した後、apache24を再起動したら完了。

# service apache24 restart

証明書の更新を自動で行うようにcronに登録する

通常で三ヶ月の期限があるので、毎月更新を実施します。

# crontab -u www -e

エディタが開くので以下のように設定して保存。

5 4 1 * * /usr/local/bin/certbot renew && /usr/local/sbin/httpd -k graceful
これで、定期的に証明書の更新が実施されます。