勉強したことのメモ

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

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

      2019/01/31

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

  関連記事

Zend OPcacheの速さの秘密

不勉強であんまり理解できなかったけどこんな感じらしい。   Zend ...

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

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

さくらVPSでLAMP環境とphpMyAdminとFTP接続環境を整える

さくらVPSでLAMP環境とphpMyAdminとFTP接続環境を整える ■環境 ...

SSHのセキュリティ設定

SSHのセキュリティ設定をする事があった。設定内容は指示を貰えたので作業自体は問 ...

さくらvpsでパッケージのアンインストール

yumでインストールしたパッケージをアンインストール したかったけど、やり方が分 ...

cronの設定方法

cronを設定してみたので方法をメモ。 まずcronで動かすPHPを作成。 ■c ...

Nginxでリダイレクト(http->https)及びリライト設定

Nginxでhttpアクセス時にhttpsリダイレクトさせたい。それとは別に「h ...

Apacheのログを見やすくする(ApacheLogViewer)

サーバのリソース監視をしていると寝ている時間にロードアベレージが跳ね上がっていた ...

サーバのメモリやロードアベレージが変に上がっていた

PVやリアルタイムのアクティブユーザーはあまり変わらないのに、以前よりメモリ使用 ...

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

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