Friday, December 22, 2023

Apache と mod_ssl のインストール(Let’s Encrypt で無料 SSL 化)

Apache と mod_ssl のインストール:

作成したインスタンスにターミナルで接続(参照)。Super User になって  sudo su 

真っ新なインスタンスですので、まずアップデートをします(最近は yum update じゃないのね。。。)

 sudo dnf update -y 

Apache と mod_ssl をインストール:

 sudo dnf install httpd mod_ssl 

Apache を起動:

 sudo systemctl start httpd 

有効化:

 sudo systemctl enable httpd 

起動しているかステイタスを確認:

 sudo systemctl status httpd 

念のためブラウザーからグローバルIPで確認:

DNS レコード:

証明書作成時に vhost.conf のドメインみているようで IP と一致しないからかエラーになったので、証明書作成前にグローバル IP を DNS レコードに設定しておいたほうが良いみたいです。

Obtaining the SSL Certificate:

In order to secure the website, you need an SSL certificate. 
I used Let’s Encrypt (https://letsencrypt.org/), which provides free SSL certificates.

Install Certbot: Certbot is a tool provided by Let’s Encrypt to easily obtain SSL certificates.

First, install PIP:

 sudo dnf install python3 augeas-libs 

Set up a virtual environment:

 sudo python3 -m venv /opt/certbot/ 

 sudo /opt/certbot/bin/pip install --upgrade pip 

Install Certbot on Apache:

 sudo /opt/certbot/bin/pip install certbot certbot-apache 

 sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot 

/etc/httpd/conf.d/vhost.conf を作成(下記をコピー):

<VirtualHost *:80>

  # REQUIRED. Set this to the host/domain/subdomain that
  # you want this VirtualHost record to handle.

  ServerName ほげほげ.com

  # Optional. You can specify additional host names that
  # serve up the same site. This can be top-level, domains,
  # sub-domains, and can even use wildcard subdomains such
  # as *.yourdomain.com - just separate each host name
  # with a single space.

  #ServerAlias ほげほげ.com

  # REQUIRED. Set this to the directory you want to use for
  # this vhost site's files.

  DocumentRoot /var/www/html

  # Optional. Uncomment this and set it to your admin email
  # address, if you have one. If there is a server error,
  # this is the address that Apache will show to users.

  ServerAdmin admin@ほげほげ.com

  # Optional. Uncomment this if you want to specify
  # a different error log file than the default. You will
  # need to create the error file first.

  #ErrorLog /var/www/vhosts/logs/error_log

  # REQUIRED. Let's make sure that .htaccess files work on 
  # this site. Don't forget to change the file path to
  # match your DocumentRoot setting above.
  
  <Directory /var/www/html>
    AllowOverride All
  </Directory>

</VirtualHost>


Create SSL certs for all domains and configure redirects in the web server:

 sudo certbot --apache 

エラーなく証明書が取得できたというメッセージがでれば完了です。ブラウザーからアクセスして暗号化されていることも確認できました。

当然ですが、インスタンスのネットワーク設定時(参照)、 https ポートを開放している必要があります。

参照:https://awswithatiq.com/ssl-setup-on-amazon-linux-2023-with-apache/
https://www.youtube.com/watch?v=IjwA8RpYH5w

No comments:

Post a Comment