search
LoginSignup
23

More than 3 years have passed since last update.

posted at

updated at

Apache 2.4 on Ubuntu 16.04でSSL

久しぶりにApacheをインストールしました。設定ファイルがディレクトリ毎に色々と分かれていたり、設定用のコマンドがあったりして、ちょっと戸惑いましたが、Let's Encryptの証明書でSSL化するまでの手順です。

インストール

# apt-get install apache2
# a2enmod ssl
# vi /etc/apache2/sites-available/default-ssl.conf
        ServerAdmin xxx@yyy.zzz <- 変更
        ServerName xxx.yyy.zzz <- 追加
        DocumentRoot /var/www/html
# a2ensite default-ssl
# service apache2 reload

これだけで、sslモジュールが有効になり、とりあえずSSLでアクセスできるようにはなる。あとは、ルータの設定をして、外からhttps://xxx.yyy.zzzに接続できるようにしておく。

Let's EncryptでSSL証明書を取得

Let's EncryptでSSL証明書を発行するためには、Certbotクライアントが必要。Apache用のプラグインもインストールする。

# apt-get install letsencrypt python-letsencrypt-apache
# letsencrypt run --apache

Ubuntu用のaptパッケージ名は、certbotではなく、まだ古い名前のletsencryptのまま。このコマンドを使うと、一発でApacheの設定まで可能。
ただ、Please choose whether HTTPS access is required or optional.でSecureを選ぶとRedirectの設定がエラーになってしまった(たぶん最新版のcertbotでは直っている)ので、Easyを選んで、Redirectの設定はあとで手動で行う。

# vi /etc/apache2/sites-available/000-default.conf
        Redirect "/" "https://xxx.yyy.zzz/" <- 追加
</VirtualHost>
# service apache2 reload

これで終了。ブラウザからアクセスして証明書のエラーが出なくなればOK。

証明書の更新

証明書の有効期限が近づいてきたというメールが来ましたので、更新しました。コマンド一発。

# letsencrypt renew

Let's Encryptの証明書は有効期間は90日間なので、3ヶ月一度更新する必要があります。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
23