金子邦彦研究室インストールUbuntu サーバ,リモート接続Ubuntu で,Apache + SSL の Web サーバを動かす

Ubuntu で,Apache + SSL の Web サーバを動かす

前もって決めておくこと

Web サーバの URL を決めておく.このWebページでは、 www.hoge.jpと書く

Ubuntu の基本設定

Apache 及び関連ソフトウェアのインストール、基本設定

  1. ufw の設定
    sudo ufw enable
    sudo ufw allow 22 
    sudo ufw allow 80
    sudo ufw allow 443
    sudo ufw allow 'Apache Full'
    
  2. ufw の設定確認
    sudo apt install nmap
    sudo ufw status
    nmap localhost
    

    [image]
  3. apache および関連ソフトのインストール
    sudo apt-get --purge remove apache2
    sudo apt-get --purge remove apache2-bin apache2-data apache2-mpm-worker
    sudo apt-get --purge remove libapache2-mod-wsgi
    
    sudo apt -y install apache2
    sudo apt -y install apache2-bin apache2-data apache2-mpm-worker
    sudo apt -y install libapache2-mod-wsgi
    sudo a2enmod ssl
    sudo a2enmod headers
    sudo service apache2 reload
    
  4. Web ブラウザで「localhost」を開き、確認。

    画面が出ればOK

  5. /etc/apache2/sites-available/000-default.com の設定

    設定例を次に示す

         ServerName www.hoge.jp
         DocumentRoot /var/www/html
         ServerAdmin hoge@hoge.ac.jp
         <Directory /var/www/html>
         Options FollowSymLinks
         AllowOverride All
         AddType text/html .html
         AddType text/html .htm
         Require all granted
         </Directory>
    

    [image]
  6. apache の再起動
    sudo apachectl configtest
    sudo service apache2 restart
    

    [image]
  7. Web ブラウザで「localhost」を開き、確認。

    画面が出ればOK

    [image]
  8. /etc/apache2/sites-available/www.hoge.jp.conf の設定

    /etc/apache2/sites-available/default-ssl.conf のファイル名を /etc/apache2/sites-available/www.hoge.jp.conf に変えたあとで、 次の記述を書き加える

    000-default.conf の記述と一致させること

    設定例を次に示す

         ServerAdmin hoge@hoge.ac.jp
         DocumentRoot /var/www/html
         <Directory /home/www>
         Options FollowSymLinks
         AllowOverride All
         AddType text/html .html
         AddType text/html .htm
         Require all granted
         </Directory>
    

    [image]
  9. apache で/etc/apache2/sites-available/www.hoge.jp.conf も使うように設定
    sudo a2ensite www.hoge.jp
    sudo service apache2 restart
    nmap localhost
    

    [image]
  10. Web ブラウザで「https://localhost」を開き、確認。

    画面が出ればOK。警告は無視

    [image]

SSL 証明書の取得

certbot を使う

参考Webページ https://certbot.eff.org/lets-encrypt/ubuntuartful-apache.html (現在は公開停止されているようです)

参考Webページ https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-18-04

  1. certbot のインストールと設定
    sudo apt -y update
    sudo apt -y install software-properties-common
    # sudo add-apt-repository -y ppa:certbot/certbot
    sudo apt -y update
    sudo apt -y install certbot 
    sudo apt -y install python-certbot-apache -y
    sudo apachectl configtest
    sudo service apache2 restart
    sudo certbot --apache  -d www.hoge.jp
    

    2を選ぶ。表示をよく確認する

  2. 次のコマンドを実行
    sudo a2enmod ssl
    sudo a2enmod headers
    sudo systemctl restart apache2
    
  3. 証明書更新ができるかのテスト
     sudo certbot renew --dry-run -d www.hoge.jp
    
  4. crontab -e で次のように設定 sudo -i crontab -e を実行し、次のように設定
    0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload apache2"