勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

VPSに無料SSLのLet's Encryptを導入

   2024/02/22  サーバー VPS

SSLといえば有料という認識だったが、無料のものも出てきているという話を聞いた。調べてみるとLet's Encryptというサービスで無料のSSL/TLSサーバ証明書を発行してくれるらしい。導入してみたので以下にメモ。また、SSL自体ちゃんと理解していなかったのでそのあたりも調べた。

 

2019/01/24追記

CentOS6.10での導入方法は以下の通り。

CentOS6.10に無料SSL(Let's Encrypt)を導入

 

SSL/TLSとは?

インターネット上で情報を暗号化して送受信する仕組みのこと。httpsで接続する。

また一般的にhttpのポートは80番だけど、httpsは443になるとのこと。

 

SSL/TLSサーバ証明書とは?

サイトの所有者情報、暗号化に必要な鍵、発行者の署名データを持った電子証明書。証明書を導入することでSSL/TLS通信ができるようになる。

 

導入環境

  • DTIのVPSでメモリ1GBプラン
  • Apache 2.2.15
  • CentOS 6.8
  • ドメインはDot tkで取得した無料ドメイン(仮でssl.tkとする)

 

事前準備

サーバにSSH接続しroot権限を持つ。ファイアウォールで80番及び443番ポートを開いておく。

vi /etc/sysconfig/iptables

Webサーバを停止しておく。

service httpd stop

 

導入

#gitのインストール
yum install git

#tmpディレクトリに移動
cd /tmp

#certbotをダウンロード
git clone https://github.com/certbot/certbot

#certbotディレクトリに移動
cd certbot

#certbotクライアントの実行。必要なソフト等があればインストールされる
./certbot-auto

テスト環境ではTUI画面になり、ドメインの確認、メアド入力、規約に同意する画面となった。ある程度直感的にわかる画面になっていたのでそのまま進んだところ、「Congratulations! Your certificate and chain have been saved at~~」と成功っぽい表示がされた。

また、「/etc/letsencrypt/archive/ドメイン名/」のディレクトリに各種証明書が保存されるらしく、チェックしたところ正常に保存されていた。

service httpd start

でWebサーバを開始し、ブラウザからhttps://ssl.tkでページを開こうとすると、以下の通り正常に接続が行えなかった。IE / Firefox / Chrome全て試したがどれもダメだった。

SSL

 

バーチャルホスト設定

調べたところバーチャルホスト設定がいるっぽい。

#apacheの設定ファイルを開く
vi /etc/httpd/conf/httpd.conf

#以下を追記する
NameVirtualHost *:443

<VirtualHost *:443>
    ServerAdmin ドメイン名
    DocumentRoot ドキュメントルート
    ServerName ドメイン名
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/archive/ドメイン名/cert1.pem
    SSLCertificateKeyFile /etc/letsencrypt/archive/ドメイン名/privkey1.pem
    SSLCertificateChainFile /etc/letsencrypt/archive/ドメイン名/chain1.pem
    ErrorLog logs/error_log
    CustomLog logs/access_log common
</VirtualHost>

#設定後はWebサーバ再起動
service httpd restart

設定を変更しサーバの再起動をかけた上で再度ブラウザからチェックすると正常に表示された。

 

注意点

証明書の有効期限は90日間となる。一般的なものは○年単位という認識だったが、Let's Encryptの証明書は短めなので注意する。

一応「certbot-auto renew」で自動更新されるらしいが、バーチャルホスト設定側がどうなるのか不明。このあたりは3ヵ月後にでもチェックしたいところ。

 

参考サイト

https://letsencrypt.jp/

http://sankame.github.io/ssl-tls/letsencrypt_setup/

 - サーバー VPS

  関連記事

サーバ移行の際にLet’s EncryptをDNS認証で対応する方法
サーバ移行の際にLet’s EncryptをDNS認証で対応する方法

近々CentOS7系からAlmaLinux8系への移行(サーバも移行)を検討して ...

Podmanで作成したApache用コンテナにLet's Encryptを導入しHTTPS接続できるようにする方法
Podmanで作成したApache用コンテナにLet's Encryptを導入しHTTPS接続できるようにする方法

先日Podmanで作成したApache用コンテナに対してドメインを割り当てたが、 ...

CentOS6.10に無料SSL(Let's Encrypt)を導入
CentOS6.10に無料SSL(Let's Encrypt)を導入

以前にもVPSにLet's Encryptを導入するという記事を書いたが、テスト ...

Nginxのバーチャルホスト設定とLet's Encryptの導入
Nginxのバーチャルホスト設定とLet's Encryptの導入

NginxでVirtualHostの設定し、複数のドメインを同一サーバに割り当て ...

Let's Encryptの自動更新時「Failed to renew certificate~」エラーの対応方法
Let's Encryptの自動更新時「Failed to renew certificate~」エラーの対応方法

CentOSからAlmaLinuxに移行後、初めてのLet's Encrypt更 ...