勉強したことのメモ

webプログラマが勉強したことのメモ。

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

   

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, サーバー, ドメイン

  関連記事

WordPressのメール送信フォームに画像認証を設置する

■やりたかった事 ココで作成したメール送信フォームに画像認証を設置する ■方法 ...

crontabコマンドのオプション

ぱっと出てこなかったのでメモ。 -u    ユーザー -l    リスト -e  ...

cronの時間設定部分が全てアスタリスク

サイトを引き継ぐことがあり、そのサーバの設定資料を確認するとcronの設定で日時 ...

KAGOYA(OpenVZ)の使用感

KAGOYAのVPSを試しに使ってみたので使用感をメモ。使用したプランはOpen ...

ServersManのVPSにRuby on Railsを導入する方法

Ruby on Railsを導入した際のメモ。Cens OSのバージョンは6.3 ...

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

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

サーバーリソース監視にsar(sysstat)が便利だった

過去にサーバーリソース監視のmuninとかcactiを何度か入れようとして挫折し ...

CPIのレンタルサーバでRewriteEngineを使用する場合の注意点

CPIのレンタルサーバで開発する案件があり、htaccessファイルを用いてRe ...

iptablesを更新するとFTP接続ができなくなる

iptablesでIP制限を追加し、iptablesを再起動するとそのサーバーに ...

お手軽に負荷分散(DNSラウンドロビン)を行う方法

サーバ設定か何かの記事を見ていて「DNSラウンドロビン」という聞いたことのない言 ...