AWS EC2(Amazon Linux AMI 64-bit)のhttpdに無料SSL(Let’s Encrypt)を導入する

シェアしていただけるとうれしいです


前回の記事で、AWS EC2(t2.micro Amazon Linux AMI 64-bit)にhttpd(Apache)2.4をインストールして、起動することとブラウザからアクセスできることを確認しました。

今回は、Amazon Linux AMI (64-bit)のhttpdに無料SSL(Let’s Encrypt)を導入します。

「Let’s Encrypt」は、ぼくがいま運用しているブログを預けているXSERVERでも採用されていて、無料で手軽に入手できること、GoogleがSSL通信の有無をインデックスに加味すると言及したことから、急速に普及しています。

Amazon Linux AMI (64-bit)のhttpdにも簡単に導入できましたので、その時のメモとして記載しておきます。



DNSの設定

「Let’s Encrypt」のSSLサーバー証明書を発行してもらうにあたっては、

  1. 証明書管理エージェントを実行しているウェブサーバが、証明書を発行する対象となるドメイン名を管理下においていることを、認証局 に対して証明します。
  2. それにより、証明書管理エージェント(クライアントソフトウェア)が、当該ドメイン名に対する証明書の発行・更新・失効を要求することが認可されます。

URLLet’s Encrypt の仕組みより引用。

まずは、ドメインを取得し、正しくDNSに登録することが必要です。

新しくドメインを取得してもいいのですが、お金がもったいないので(笑)、いま保有しているドメインのサブドメインで登録をしてみます。

サブドメインをDNSに登録する

このブログを運用するために「maro-log.net」というドメインを保有しています。このドメインのサブドメインとして「aws.maro-log.net」というドメインを作成し、DNSに登録します。

「maro-log.net」はXSERVERで運用しており、XSERVERのDNSに「aws.maro-log.net」を登録します。

XSERVERの「サーバーパネルにログインして、「DNSレコード設定」をクリックします。
Amazon Linux AMI (64-bit)のhttpdに無料SSL(Let's encript)を導入する

ドメイン名を選択します。
Amazon Linux AMI (64-bit)のhttpdに無料SSL(Let's encript)を導入する

「DNSレコードの追加」をクリックします。
Amazon Linux AMI (64-bit)のhttpdに無料SSL(Let's encript)を導入する

下記の内容を入力します。
Amazon Linux AMI (64-bit)のhttpdに無料SSL(Let's encript)を導入する

  • ホスト名:設定したいサブドメイン
  • 種類:A
  • 内容:EC2インスタンスの「IPv4 パブリック IP」の値
  • 優先度:0

「DNSレコードの追加(確認)」→「DNSレコードの追加(確定)」をクリックしてDNSレコードを登録します。

ブラウザでアクセスしてみる

設定したサブドメイン名でEC2インスタンスのhttpdのテストページが見えるかどうか確認します。

Amazon Linux AMI (64-bit)のhttpdに無料SSL(Let's encript)を導入する

追加したDNSレコードはすぐに有効になるようです。

Let’s encryptの無料SSLサーバー証明書を取得する

サブドメインのDNSレコードが有効になったところで、早速Let’s Encryptの無料SSLサーバー証明書を取得する準備に取り掛かります。

Certbot クライアントをダウンロード・インストールする

Let’s Encryptの無料SSLサーバー証明書をインストールするには、電子フロンティア財団(EFF)が提供している証明書取得・管理ソフトウェアの「Certbot」を使うと簡単にできます。

こちらのページを参考にして設定してみました。
URLCertbot クライアントのインストール・その他の UNIX 系 OS

パスが通っているところにダウンロードしたほうが後々便利なので、「/usr/bin」にインストールします。

ダウンロードした「certbot-auto」にrootに対する実行権限を与えます。

ダウンロードしたcertbot-autoを使って証明書を発行してみる

certbot-autoの使い方は、次のコマンドで確認できます。

A self-updating wrapper script for the Certbot ACME client. When run, updates
to both this script and certbot will be downloaded and installed. After
ensuring you have the latest versions installed, certbot will be invoked with
all arguments you have provided.

Help for certbot itself cannot be provided until it is installed.

–debug attempt experimental installation
-h, –help print this help
-n, –non-interactive, –noninteractive run without asking for user input
–no-bootstrap do not install OS dependencies
–no-self-upgrade do not download updates
–os-packages-only install OS dependencies and exit
-v, –verbose provide more output
-q, –quiet provide only update/error output;
implies –non-interactive

All arguments are accepted and forwarded to the Certbot client when run.

では、早速実行してみます。

-w で指定されている /var/www/html は、WebのDocumentRootです。
-d で指定されている aws.maro-log.net は、証明書を取得するドメイン名(サブドメイン名)です。
FATAL: Amazon Linux support is very experimental at present…
if you would like to work on improving it, please ensure you have backups
and then run this script again with the –debug flag!
Alternatively, you can install OS dependencies yourself and run this script
again with –no-bootstrap.

どうやら、Amazon Linuxでは「–debug」をつけて実行しろ、ということみたいですね。
「–debug」をつけて再度実行します。

Bootstrapping dependencies for Amazon… (you can skip this with –no-bootstrap)
yum is /usr/bin/yum
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main | 2.1 kB 00:00
amzn-updates | 2.5 kB 00:00
Package 1:openssl-1.0.2k-8.106.amzn1.x86_64 already installed and latest version
Package ca-certificates-2015.2.6-65.0.1.16.amzn1.noarch already installed and la test version
Package python27-2.7.12-2.121.amzn1.x86_64 already installed and latest version
Package python27-devel-2.7.12-2.121.amzn1.x86_64 already installed and latest ve rsion
Package python27-virtualenv-15.1.0-1.14.amzn1.noarch already installed and lates t version
Package python27-pip-9.0.1-1.24.amzn1.noarch already installed and latest versio n
Resolving Dependencies
–> Running transaction check
—> Package augeas-libs.x86_64 0:1.0.0-5.7.amzn1 will be installed
—> Package gcc.noarch 0:4.8.5-1.22.amzn1 will be installed
–> Processing Dependency: gcc48 >= 4.8.5 for package: gcc-4.8.5-1.22.amzn1.noar ch
—> Package libffi-devel.x86_64 0:3.0.13-16.5.amzn1 will be installed
—> Package openssl-devel.x86_64 1:1.0.2k-8.106.amzn1 will be installed
–> Processing Dependency: zlib-devel(x86-64) for package: 1:openssl-devel-1.0.2 k-8.106.amzn1.x86_64
–> Processing Dependency: krb5-devel(x86-64) for package: 1:openssl-devel-1.0.2 k-8.106.amzn1.x86_64
—> Package python27-tools.x86_64 0:2.7.12-2.121.amzn1 will be installed
—> Package system-rpm-config.noarch 0:9.0.3-42.28.amzn1 will be installed
–> Running transaction check
—> Package gcc48.x86_64 0:4.8.5-11.135.amzn1 will be installed
–> Processing Dependency: libgcc48(x86-64) = 4.8.5 for package: gcc48-4.8.5-11. 135.amzn1.x86_64
–> Processing Dependency: cpp48(x86-64) = 4.8.5-11.135.amzn1 for package: gcc48 -4.8.5-11.135.amzn1.x86_64
–> Processing Dependency: libgomp(x86-64) >= 4.8.5-11.135.amzn1 for package: gc c48-4.8.5-11.135.amzn1.x86_64
–> Processing Dependency: glibc-devel(x86-64) >= 2.2.90-12 for package: gcc48-4 .8.5-11.135.amzn1.x86_64
–> Processing Dependency: libmpfr.so.4()(64bit) for package: gcc48-4.8.5-11.135 .amzn1.x86_64
–> Processing Dependency: libmpc.so.3()(64bit) for package: gcc48-4.8.5-11.135. amzn1.x86_64
–> Processing Dependency: libgomp.so.1()(64bit) for package: gcc48-4.8.5-11.135 .amzn1.x86_64
—> Package krb5-devel.x86_64 0:1.15.1-8.43.amzn1 will be installed
–> Processing Dependency: libkadm5(x86-64) = 1.15.1-8.43.amzn1 for package: krb 5-devel-1.15.1-8.43.amzn1.x86_64
–> Processing Dependency: libverto-devel for package: krb5-devel-1.15.1-8.43.am zn1.x86_64
–> Processing Dependency: libselinux-devel for package: krb5-devel-1.15.1-8.43. amzn1.x86_64
–> Processing Dependency: libcom_err-devel for package: krb5-devel-1.15.1-8.43. amzn1.x86_64
–> Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.15.1-8. 43.amzn1.x86_64
—> Package zlib-devel.x86_64 0:1.2.8-7.18.amzn1 will be installed
–> Running transaction check
—> Package cpp48.x86_64 0:4.8.5-11.135.amzn1 will be installed
—> Package glibc-devel.x86_64 0:2.17-196.172.amzn1 will be installed
–> Processing Dependency: glibc-headers = 2.17-196.172.amzn1 for package: glibc -devel-2.17-196.172.amzn1.x86_64
–> Processing Dependency: glibc-headers for package: glibc-devel-2.17-196.172.a mzn1.x86_64
—> Package keyutils-libs-devel.x86_64 0:1.5.8-3.12.amzn1 will be installed
—> Package libcom_err-devel.x86_64 0:1.42.12-4.40.amzn1 will be installed
—> Package libgcc48.x86_64 0:4.8.5-11.135.amzn1 will be installed
—> Package libgomp.x86_64 0:6.4.1-1.45.amzn1 will be installed
—> Package libkadm5.x86_64 0:1.15.1-8.43.amzn1 will be installed
—> Package libmpc.x86_64 0:1.0.1-3.3.amzn1 will be installed
—> Package libselinux-devel.x86_64 0:2.1.10-3.22.amzn1 will be installed
–> Processing Dependency: libsepol-devel >= 2.1.5-1 for package: libselinux-dev el-2.1.10-3.22.amzn1.x86_64
–> Processing Dependency: pkgconfig(libsepol) for package: libselinux-devel-2.1 .10-3.22.amzn1.x86_64
—> Package libverto-devel.x86_64 0:0.2.5-4.9.amzn1 will be installed
—> Package mpfr.x86_64 0:3.1.1-4.14.amzn1 will be installed
–> Running transaction check
—> Package glibc-headers.x86_64 0:2.17-196.172.amzn1 will be installed
–> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2. 17-196.172.amzn1.x86_64
–> Processing Dependency: kernel-headers for package: glibc-headers-2.17-196.17 2.amzn1.x86_64
—> Package libsepol-devel.x86_64 0:2.1.7-3.12.amzn1 will be installed
–> Running transaction check
—> Package kernel-headers.x86_64 0:4.9.62-21.56.amzn1 will be installed
–> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
augeas-libs x86_64 1.0.0-5.7.amzn1 amzn-main 345 k
gcc noarch 4.8.5-1.22.amzn1 amzn-main 4.1 k
libffi-devel x86_64 3.0.13-16.5.amzn1 amzn-main 23 k
openssl-devel x86_64 1:1.0.2k-8.106.amzn1 amzn-updates 1.6 M
python27-tools x86_64 2.7.12-2.121.amzn1 amzn-updates 709 k
system-rpm-config noarch 9.0.3-42.28.amzn1 amzn-main 63 k
Installing for dependencies:
cpp48 x86_64 4.8.5-11.135.amzn1 amzn-main 6.7 M
gcc48 x86_64 4.8.5-11.135.amzn1 amzn-main 18 M
glibc-devel x86_64 2.17-196.172.amzn1 amzn-main 1.1 M
glibc-headers x86_64 2.17-196.172.amzn1 amzn-main 751 k
kernel-headers x86_64 4.9.62-21.56.amzn1 amzn-updates 1.1 M
keyutils-libs-devel x86_64 1.5.8-3.12.amzn1 amzn-main 37 k
krb5-devel x86_64 1.15.1-8.43.amzn1 amzn-updates 287 k
libcom_err-devel x86_64 1.42.12-4.40.amzn1 amzn-main 35 k
libgcc48 x86_64 4.8.5-11.135.amzn1 amzn-main 150 k
libgomp x86_64 6.4.1-1.45.amzn1 amzn-main 204 k
libkadm5 x86_64 1.15.1-8.43.amzn1 amzn-updates 198 k
libmpc x86_64 1.0.1-3.3.amzn1 amzn-main 53 k
libselinux-devel x86_64 2.1.10-3.22.amzn1 amzn-main 157 k
libsepol-devel x86_64 2.1.7-3.12.amzn1 amzn-main 70 k
libverto-devel x86_64 0.2.5-4.9.amzn1 amzn-main 11 k
mpfr x86_64 3.1.1-4.14.amzn1 amzn-main 237 k
zlib-devel x86_64 1.2.8-7.18.amzn1 amzn-main 53 k

Transaction Summary
================================================================================
Install 6 Packages (+17 Dependent packages)

Total download size: 32 M
Installed size: 61 M
Is this ok [y/d/N]:

依存関係にある必要なパッケージをインストールしなければならないようです。
「y」を入力して続行します。

Downloading packages:
(1/23): augeas-libs-1.0.0-5.7.amzn1.x86_64.rpm | 345 kB 00:00:00
(2/23): gcc-4.8.5-1.22.amzn1.noarch.rpm | 4.1 kB 00:00:00
(3/23): cpp48-4.8.5-11.135.amzn1.x86_64.rpm | 6.7 MB 00:00:00
(4/23): glibc-devel-2.17-196.172.amzn1.x86_64.rpm | 1.1 MB 00:00:00
(5/23): glibc-headers-2.17-196.172.amzn1.x86_64.rpm | 751 kB 00:00:00
(6/23): keyutils-libs-devel-1.5.8-3.12.amzn1.x86_64.rpm | 37 kB 00:00:00
(7/23): libcom_err-devel-1.42.12-4.40.amzn1.x86_64.rpm | 35 kB 00:00:00
(8/23): libffi-devel-3.0.13-16.5.amzn1.x86_64.rpm | 23 kB 00:00:00
(9/23): libgcc48-4.8.5-11.135.amzn1.x86_64.rpm | 150 kB 00:00:00
(10/23): kernel-headers-4.9.62-21.56.amzn1.x86_64.rpm | 1.1 MB 00:00:00
(11/23): libgomp-6.4.1-1.45.amzn1.x86_64.rpm | 204 kB 00:00:00
(12/23): libmpc-1.0.1-3.3.amzn1.x86_64.rpm | 53 kB 00:00:00
(13/23): krb5-devel-1.15.1-8.43.amzn1.x86_64.rpm | 287 kB 00:00:00
(14/23): libkadm5-1.15.1-8.43.amzn1.x86_64.rpm | 198 kB 00:00:00
(15/23): libselinux-devel-2.1.10-3.22.amzn1.x86_64.rpm | 157 kB 00:00:00
(16/23): libsepol-devel-2.1.7-3.12.amzn1.x86_64.rpm | 70 kB 00:00:00
(17/23): libverto-devel-0.2.5-4.9.amzn1.x86_64.rpm | 11 kB 00:00:00
(18/23): mpfr-3.1.1-4.14.amzn1.x86_64.rpm | 237 kB 00:00:00
(19/23): system-rpm-config-9.0.3-42.28.amzn1.noarch.rpm | 63 kB 00:00:00
(20/23): python27-tools-2.7.12-2.121.amzn1.x86_64.rpm | 709 kB 00:00:00
(21/23): zlib-devel-1.2.8-7.18.amzn1.x86_64.rpm | 53 kB 00:00:00
(22/23): openssl-devel-1.0.2k-8.106.amzn1.x86_64.rpm | 1.6 MB 00:00:00
(23/23): gcc48-4.8.5-11.135.amzn1.x86_64.rpm | 18 MB 00:00:03
———————————————————————————–
Total 9.3 MB/s | 32 MB 00:03
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mpfr-3.1.1-4.14.amzn1.x86_64 1/23
Installing : libmpc-1.0.1-3.3.amzn1.x86_64 2/23
Installing : libgcc48-4.8.5-11.135.amzn1.x86_64 3/23
Installing : cpp48-4.8.5-11.135.amzn1.x86_64 4/23
Installing : libcom_err-devel-1.42.12-4.40.amzn1.x86_64 5/23
Installing : libverto-devel-0.2.5-4.9.amzn1.x86_64 6/23
Installing : libsepol-devel-2.1.7-3.12.amzn1.x86_64 7/23
Installing : libselinux-devel-2.1.10-3.22.amzn1.x86_64 8/23
Installing : libgomp-6.4.1-1.45.amzn1.x86_64 9/23
Installing : kernel-headers-4.9.62-21.56.amzn1.x86_64 10/23
Installing : glibc-headers-2.17-196.172.amzn1.x86_64 11/23
Installing : glibc-devel-2.17-196.172.amzn1.x86_64 12/23
Installing : gcc48-4.8.5-11.135.amzn1.x86_64 13/23
Installing : libkadm5-1.15.1-8.43.amzn1.x86_64 14/23
Installing : zlib-devel-1.2.8-7.18.amzn1.x86_64 15/23
Installing : keyutils-libs-devel-1.5.8-3.12.amzn1.x86_64 16/23
Installing : krb5-devel-1.15.1-8.43.amzn1.x86_64 17/23
Installing : 1:openssl-devel-1.0.2k-8.106.amzn1.x86_64 18/23
Installing : gcc-4.8.5-1.22.amzn1.noarch 19/23
Installing : augeas-libs-1.0.0-5.7.amzn1.x86_64 20/23
Installing : python27-tools-2.7.12-2.121.amzn1.x86_64 21/23
Installing : libffi-devel-3.0.13-16.5.amzn1.x86_64 22/23
Installing : system-rpm-config-9.0.3-42.28.amzn1.noarch 23/23
Verifying : gcc-4.8.5-1.22.amzn1.noarch 1/23
Verifying : augeas-libs-1.0.0-5.7.amzn1.x86_64 2/23
Verifying : glibc-headers-2.17-196.172.amzn1.x86_64 3/23
Verifying : mpfr-3.1.1-4.14.amzn1.x86_64 4/23
Verifying : system-rpm-config-9.0.3-42.28.amzn1.noarch 5/23
Verifying : libselinux-devel-2.1.10-3.22.amzn1.x86_64 6/23
Verifying : keyutils-libs-devel-1.5.8-3.12.amzn1.x86_64 7/23
Verifying : zlib-devel-1.2.8-7.18.amzn1.x86_64 8/23
Verifying : gcc48-4.8.5-11.135.amzn1.x86_64 9/23
Verifying : krb5-devel-1.15.1-8.43.amzn1.x86_64 10/23
Verifying : libffi-devel-3.0.13-16.5.amzn1.x86_64 11/23
Verifying : libkadm5-1.15.1-8.43.amzn1.x86_64 12/23
Verifying : kernel-headers-4.9.62-21.56.amzn1.x86_64 13/23
Verifying : python27-tools-2.7.12-2.121.amzn1.x86_64 14/23
Verifying : glibc-devel-2.17-196.172.amzn1.x86_64 15/23
Verifying : cpp48-4.8.5-11.135.amzn1.x86_64 16/23
Verifying : libmpc-1.0.1-3.3.amzn1.x86_64 17/23
Verifying : libgomp-6.4.1-1.45.amzn1.x86_64 18/23
Verifying : libsepol-devel-2.1.7-3.12.amzn1.x86_64 19/23
Verifying : 1:openssl-devel-1.0.2k-8.106.amzn1.x86_64 20/23
Verifying : libverto-devel-0.2.5-4.9.amzn1.x86_64 21/23
Verifying : libcom_err-devel-1.42.12-4.40.amzn1.x86_64 22/23
Verifying : libgcc48-4.8.5-11.135.amzn1.x86_64 23/23

Installed:
augeas-libs.x86_64 0:1.0.0-5.7.amzn1
gcc.noarch 0:4.8.5-1.22.amzn1
libffi-devel.x86_64 0:3.0.13-16.5.amzn1
openssl-devel.x86_64 1:1.0.2k-8.106.amzn1
python27-tools.x86_64 0:2.7.12-2.121.amzn1
system-rpm-config.noarch 0:9.0.3-42.28.amzn1

Dependency Installed:
cpp48.x86_64 0:4.8.5-11.135.amzn1
gcc48.x86_64 0:4.8.5-11.135.amzn1
glibc-devel.x86_64 0:2.17-196.172.amzn1
glibc-headers.x86_64 0:2.17-196.172.amzn1
kernel-headers.x86_64 0:4.9.62-21.56.amzn1
keyutils-libs-devel.x86_64 0:1.5.8-3.12.amzn1
krb5-devel.x86_64 0:1.15.1-8.43.amzn1
libcom_err-devel.x86_64 0:1.42.12-4.40.amzn1
libgcc48.x86_64 0:4.8.5-11.135.amzn1
libgomp.x86_64 0:6.4.1-1.45.amzn1
libkadm5.x86_64 0:1.15.1-8.43.amzn1
libmpc.x86_64 0:1.0.1-3.3.amzn1
libselinux-devel.x86_64 0:2.1.10-3.22.amzn1
libsepol-devel.x86_64 0:2.1.7-3.12.amzn1
libverto-devel.x86_64 0:0.2.5-4.9.amzn1
mpfr.x86_64 0:3.1.1-4.14.amzn1
zlib-devel.x86_64 0:1.2.8-7.18.amzn1

Complete!
Creating virtual environment…
Installing Python packages…
Installation succeeded.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache

パッケージのインストールが完了すると、E-mailアドレスの入力を求められます。自分のE-mailアドレスを入力します。

Enter email address (used for urgent renewal and security notices) (Enter ‘c’ to
cancel):
——————————————————————————-
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
——————————————————————————-
(A)gree/(C)ancel:

「A」を入力します。

——————————————————————————-
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let’s Encrypt project and the non-profit
organization that develops Certbot? We’d like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
——————————————————————————-
(Y)es/(N)o:

「Y」を入力します。

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for aws.maro-log.net
Using the webroot path /var/www/html for all unmatched domains.
Waiting for verification…
Cleaning up challenges

IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/aws.maro-log.net/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/aws.maro-log.net/privkey.pem
Your cert will expire on 2018-03-16. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
“certbot-auto renew”
– Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
– If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

証明書の発行に成功したようです。
「/etc/letsencrypt/live/aws.maro-log.net/」以下に必要なファイルが生成されていますので、確認します。

total 12
drwxr-xr-x 2 root root 4096 Dec 16 12:20 .
drwx—— 3 root root 4096 Dec 16 12:20 ..
lrwxrwxrwx 1 root root 40 Dec 16 12:20 cert.pem -> ../../archive/aws.maro-log.net/cert1.pem
lrwxrwxrwx 1 root root 41 Dec 16 12:20 chain.pem -> ../../archive/aws.maro-log.net/chain1.pem
lrwxrwxrwx 1 root root 45 Dec 16 12:20 fullchain.pem -> ../../archive/aws.maro-log.net/fullchain1.pem
lrwxrwxrwx 1 root root 43 Dec 16 12:20 privkey.pem -> ../../archive/aws.maro-log.net/privkey1.pem
-rw-r–r– 1 root root 543 Dec 16 12:20 README

httpdの設定

発行されたSSLサーバー証明書をhttpdの設定ファイルに記載します。

mod_sslのインストール

SSL通信をするために必要な「mod_ssl」をインストールします。

httpd-2.4に対応したmod_sslをインストールしています。
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
–> Running transaction check
—> Package mod24_ssl.x86_64 1:2.4.27-3.75.amzn1 will be installed
–> Finished Dependency Resolution

Dependencies Resolved

===================================================================================
Package Arch Version Repository Size
===================================================================================
Installing:
mod24_ssl x86_64 1:2.4.27-3.75.amzn1 amzn-main 123 k

Transaction Summary
===================================================================================
Install 1 Package

Total download size: 123 k
Installed size: 228 k
Is this ok [y/d/N]:

「y」を入力してインストールします。

Downloading packages:
mod24_ssl-2.4.27-3.75.amzn1.x86_64.rpm | 123 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 1:mod24_ssl-2.4.27-3.75.amzn1.x86_64 1/1
Verifying : 1:mod24_ssl-2.4.27-3.75.amzn1.x86_64 1/1

Installed:
mod24_ssl.x86_64 1:2.4.27-3.75.amzn1

Complete!

ssl.confに証明書のパスを記載する

mod_sslをインストールすると「/etc/httpd/conf.d/ssl.conf」というファイルができているので、そちらに証明書のパスを記載します。

下記の該当箇所のパスを書き換えます。

  • SSLCertificateFile
  • SSLCertificateKeyFile
  • SSLCertificateChainFile

SSLCertificateFile

変更前

変更後

SSLCertificateKeyFile

変更前

変更後

SSLCertificateChainFile

変更前

変更後

ついでに、SSL通信の安全性のために、下記の設定も変更しておいたほうがいいです。(TLS v1.2のみ許可)
変更前

変更後

httpdを再起動する

ssl.confの編集が完了したら、設定を有効にするためにhttpdを再起動します。

Stopping httpd: [ OK ]
Starting httpd: [ OK ]

ブラウザでアクセスしてみる

では、ブラウザで実際にアクセスしてみましょう。
Amazon Linux AMI (64-bit)のhttpdに無料SSL(Let's encript)を導入する

https://ドメイン名

でアクセスして、「保護された通信」になっていれば成功です。

サーバー証明書の自動更新の設定

Let’s EncryptのSSLサーバー証明書の有効期限は、発行から90日になっています。有効期限が近づくと発行時に登録したE-mailアドレスにお知らせが届くそうです。

Let’s EncryptのSSLサーバー証明書の更新は下記のコマンドで実行できます。

実行してみると、下記のように出力されました。

Saving debug log to /var/log/letsencrypt/letsencrypt.log

——————————————————————————-
Processing /etc/letsencrypt/renewal/aws.maro-log.net.conf
——————————————————————————-
Cert not yet due for renewal

——————————————————————————-

The following certs are not due for renewal yet:
/etc/letsencrypt/live/aws.maro-log.net/fullchain.pem (skipped)
No renewals were attempted.

このコマンドをcrondに登録しておけば、自動的にSSLサーバー証明書を更新してくれます。

毎日午前3時に実行させます。

「–post-hook」はcertbot-auto実行後にサーバー証明書が更新されたあとに実行するコマンドを指定できます。httpdを再起動させています。

次回以降は

Let’s EncryptのSSLサーバー証明書をインストールしてSSL通信ができるようになりました。
次回は、MySQLをインストールして、その後、PHPをインストールしてみたいと思います。

AWS EC2(t2.micro Amazon Linux AMI 64-bit)の初期設定
会社の業務でAWS EC2の環境構築をしてみたら意外と簡単でしたので、個人でも申し込んでみました。 契約したのは下記のサービスとO...
AWS EC2(t2.micro Amazon Linux AMI 64-bit)にhttpd(Apache)2.4をインストールする
前回、AWS EC2(t2.micro Amazon Linux AMI 64-bit)の初期設定が終わったので、httpd(Apach...
いわゆる「画像直リンク」、画像の複製は固くお断りいたします。
スポンサーリンク

シェアしていただけるとうれしいです

フォローよろしくお願いします

関連記事



スポンサーリンク