勉強したことのメモ

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 サーバー

  関連記事

CentOS7系にLEMP環境(Linux + Nginx + MySQL + PHP)を構築

先日KAGOYAのVPSからIndigoに移行した際にCentOS6から7へバー ...

AlmaLinux8.6にLAMP環境&WordPressを構築する方法

だいぶ前にCentOS6系から7系に移行したが、7系も2024/6/30にサポー ...

CentOS6系から7系に(KAGOYAからIndigoに)移行した際のメモ

CentOS6系から7系に、さらにKAGOYAのVPSからWebARENA In ...