【CentOS6】Let's Encryptを利用してApacheをHTTPS対応する
2016/12/02 追記
設定がめっちゃ簡単になってるみたい。
無償SSL/TLS証明書の Let’s Encrypt の設定が劇的に簡単になっていた | Webセキュリティの小部屋
こちらの記事を参考にした方が幸せになれそうです。
いちおう現在(2016/11/27)も、当方の記事の方法で証明書の発行はできてます。
環境
手順
git
Let's EncryptはGitHubから入手するので、入っていなかったらgitをインストールしておく。
$ yum install -y git 読み込んだプラグイン:fastestmirror インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * rpmforge: ftp.kddilabs.jp * updates: ftp.iij.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package git.x86_64 0:1.7.1-3.el6_4.1 will be インストール --> 依存性の処理をしています: perl-Git = 1.7.1-3.el6_4.1 のパッケージ: git-1.7.1-3.el6_4.1.x86_64 --> 依存性の処理をしています: rsync のパッケージ: git-1.7.1-3.el6_4.1.x86_64 --> 依存性の処理をしています: perl(Git) のパッケージ: git-1.7.1-3.el6_4.1.x86_64 --> 依存性の処理をしています: perl(Error) のパッケージ: git-1.7.1-3.el6_4.1.x86_64 --> トランザクションの確認を実行しています。 ---> Package perl-Error.noarch 1:0.17015-4.el6 will be インストール ---> Package perl-Git.noarch 0:1.7.1-3.el6_4.1 will be インストール ---> Package rsync.x86_64 0:3.0.6-12.el6 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 ============================================================================================================================================================================================== インストールしています: git x86_64 1.7.1-3.el6_4.1 base 4.6 M 依存性関連でのインストールをします。: perl-Error noarch 1:0.17015-4.el6 base 29 k perl-Git noarch 1.7.1-3.el6_4.1 base 28 k rsync x86_64 3.0.6-12.el6 base 335 k トランザクションの要約 ============================================================================================================================================================================================== インストール 4 パッケージ 総ダウンロード容量: 5.0 M インストール済み容量: 15 M パッケージをダウンロードしています: (1/4): git-1.7.1-3.el6_4.1.x86_64.rpm | 4.6 MB 00:01 (2/4): perl-Error-0.17015-4.el6.noarch.rpm | 29 kB 00:00 (3/4): perl-Git-1.7.1-3.el6_4.1.noarch.rpm | 28 kB 00:00 (4/4): rsync-3.0.6-12.el6.x86_64.rpm | 335 kB 00:00 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 合計 1.8 MB/s | 5.0 MB 00:02 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : 1:perl-Error-0.17015-4.el6.noarch 1/4 インストールしています : rsync-3.0.6-12.el6.x86_64 2/4 インストールしています : perl-Git-1.7.1-3.el6_4.1.noarch 3/4 インストールしています : git-1.7.1-3.el6_4.1.x86_64 4/4 Verifying : git-1.7.1-3.el6_4.1.x86_64 1/4 Verifying : perl-Git-1.7.1-3.el6_4.1.noarch 2/4 Verifying : 1:perl-Error-0.17015-4.el6.noarch 3/4 Verifying : rsync-3.0.6-12.el6.x86_64 4/4 インストール: git.x86_64 0:1.7.1-3.el6_4.1 依存性関連をインストールしました: perl-Error.noarch 1:0.17015-4.el6 perl-Git.noarch 0:1.7.1-3.el6_4.1 rsync.x86_64 0:3.0.6-12.el6 完了しました!
python2.7
Let's Encrypt がサポートするpythonのバージョンは2.7なのですが、CentOS6.x系の標準パッケージではpython2.6がデフォルトとなっています。
というわけで、python2.7はSoftwareCollections(SCL)から入手する必要があります。
SCLリポジトリの追加
# $ yum install centos-release-SCL 読み込んだプラグイン:fastestmirror インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * rpmforge: ftp.kddilabs.jp * updates: ftp.iij.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package centos-release-SCL.x86_64 10:6-5.el6.centos will be インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 ============================================================================================================================================================================================== インストールしています: centos-release-SCL x86_64 10:6-5.el6.centos extras 3.9 k トランザクションの要約 ============================================================================================================================================================================================== インストール 1 パッケージ 総ダウンロード容量: 3.9 k インストール済み容量: 453 これでいいですか? [y/N]y パッケージをダウンロードしています: centos-release-SCL-6-5.el6.centos.x86_64.rpm | 3.9 kB 00:00 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : 10:centos-release-SCL-6-5.el6.centos.x86_64 1/1 Verifying : 10:centos-release-SCL-6-5.el6.centos.x86_64 1/1 インストール: centos-release-SCL.x86_64 10:6-5.el6.centos 完了しました!
python2.7のインストール
$ yum install -y python27 python27-python-devel python27-python-setuptools python27-python-tools python27-python-virtualenv 読み込んだプラグイン:fastestmirror インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * rpmforge: ftp.kddilabs.jp * updates: ftp.iij.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package python27.x86_64 0:1.1-16.el6.centos.alt will be インストール --> 依存性の処理をしています: python27-python-werkzeug のパッケージ: python27-1.1-16.el6.centos.alt.x86_64 --> 依存性の処理をしています: python27-python-sqlalchemy のパッケージ: python27-1.1-16.el6.centos.alt.x86_64 --> 依存性の処理をしています: python27-python-sphinx のパッケージ: python27-1.1-16.el6.centos.alt.x86_64 --> 依存性の処理をしています: python27-python-simplejson のパッケージ: python27-1.1-16.el6.centos.alt.x86_64 --> 依存性の処理をしています: python27-python-nose のパッケージ: python27-1.1-16.el6.centos.alt.x86_64 --> 依存性の処理をしています: python27-python-jinja2 のパッケージ: python27-1.1-16.el6.centos.alt.x86_64 --> 依存性の処理をしています: python27-python のパッケージ: python27-1.1-16.el6.centos.alt.x86_64 ---> Package python27-python-devel.x86_64 0:2.7.5-10.el6.centos.alt will be インストール --> 依存性の処理をしています: libpython2.7.so.1.0()(64bit) のパッケージ: python27-python-devel-2.7.5-10.el6.centos.alt.x86_64 ---> Package python27-python-setuptools.noarch 0:0.9.8-2.el6.centos.alt will be インストール ---> Package python27-python-tools.x86_64 0:2.7.5-10.el6.centos.alt will be インストール --> 依存性の処理をしています: python27-tkinter = 2.7.5-10.el6.centos.alt のパッケージ: python27-python-tools-2.7.5-10.el6.centos.alt.x86_64 ---> Package python27-python-virtualenv.noarch 0:1.10.1-2.el6.centos.alt will be インストール --> トランザクションの確認を実行しています。 ---> Package python27-python.x86_64 0:2.7.5-10.el6.centos.alt will be インストール --> 依存性の処理をしています: python27-runtime のパッケージ: python27-python-2.7.5-10.el6.centos.alt.x86_64 ---> Package python27-python-jinja2.noarch 0:2.6-10.el6.centos.alt will be インストール --> 依存性の処理をしています: python27-python-babel >= 0.8 のパッケージ: python27-python-jinja2-2.6-10.el6.centos.alt.noarch --> 依存性の処理をしています: python27-python-markupsafe のパッケージ: python27-python-jinja2-2.6-10.el6.centos.alt.noarch ---> Package python27-python-libs.x86_64 0:2.7.5-10.el6.centos.alt will be インストール ---> Package python27-python-nose.noarch 0:1.3.0-1.el6.centos.alt will be インストール ---> Package python27-python-simplejson.x86_64 0:3.2.0-1.el6.centos.alt will be インストール ---> Package python27-python-sphinx.noarch 0:1.1.3-7.el6.centos.alt will be インストール --> 依存性の処理をしています: python27-python-pygments のパッケージ: python27-python-sphinx-1.1.3-7.el6.centos.alt.noarch --> 依存性の処理をしています: python27-python-docutils のパッケージ: python27-python-sphinx-1.1.3-7.el6.centos.alt.noarch ---> Package python27-python-sqlalchemy.x86_64 0:0.7.9-3.el6.centos.alt will be インストール ---> Package python27-python-werkzeug.noarch 0:0.8.3-5.el6.centos.alt will be インストール ---> Package python27-tkinter.x86_64 0:2.7.5-10.el6.centos.alt will be インストール --> トランザクションの確認を実行しています。 ---> Package python27-python-babel.noarch 0:0.9.6-7.el6.centos.alt will be インストール ---> Package python27-python-docutils.noarch 0:0.11-1.el6.centos.alt will be インストール ---> Package python27-python-markupsafe.x86_64 0:0.11-11.el6.centos.alt will be インストール ---> Package python27-python-pygments.noarch 0:1.5-2.el6.centos.alt will be インストール ---> Package python27-runtime.x86_64 0:1.1-16.el6.centos.alt will be インストール --> 依存性の処理をしています: scl-utils のパッケージ: python27-runtime-1.1-16.el6.centos.alt.x86_64 --> トランザクションの確認を実行しています。 ---> Package scl-utils.x86_64 0:20120927-27.el6_6 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 ============================================================================================================================== インストールしています: python27 x86_64 1.1-16.el6.centos.alt scl 4.7 k python27-python-devel x86_64 2.7.5-10.el6.centos.alt scl 386 k python27-python-setuptools noarch 0.9.8-2.el6.centos.alt scl 423 k python27-python-tools x86_64 2.7.5-10.el6.centos.alt scl 877 k python27-python-virtualenv noarch 1.10.1-2.el6.centos.alt scl 1.4 M 依存性関連でのインストールをします。: python27-python x86_64 2.7.5-10.el6.centos.alt scl 80 k python27-python-babel noarch 0.9.6-7.el6.centos.alt scl 1.4 M python27-python-docutils noarch 0.11-1.el6.centos.alt scl 1.6 M python27-python-jinja2 noarch 2.6-10.el6.centos.alt scl 550 k python27-python-libs x86_64 2.7.5-10.el6.centos.alt scl 5.5 M python27-python-markupsafe x86_64 0.11-11.el6.centos.alt scl 25 k python27-python-nose noarch 1.3.0-1.el6.centos.alt scl 290 k python27-python-pygments noarch 1.5-2.el6.centos.alt scl 802 k python27-python-simplejson x86_64 3.2.0-1.el6.centos.alt scl 174 k python27-python-sphinx noarch 1.1.3-7.el6.centos.alt scl 1.1 M python27-python-sqlalchemy x86_64 0.7.9-3.el6.centos.alt scl 2.1 M python27-python-werkzeug noarch 0.8.3-5.el6.centos.alt scl 556 k python27-runtime x86_64 1.1-16.el6.centos.alt scl 1.0 M python27-tkinter x86_64 2.7.5-10.el6.centos.alt scl 333 k scl-utils x86_64 20120927-27.el6_6 base 22 k トランザクションの要約 ============================================================================================================================== インストール 20 パッケージ 総ダウンロード容量: 19 M インストール済み容量: 71 M パッケージをダウンロードしています: (1/20): python27-1.1-16.el6.centos.alt.x86_64.rpm | 4.7 kB 00:00 (2/20): python27-python-2.7.5-10.el6.centos.alt.x86_64.rpm | 80 kB 00:01 (3/20): python27-python-babel-0.9.6-7.el6.centos.alt.noarch.rpm | 1.4 MB 00:05 (4/20): python27-python-devel-2.7.5-10.el6.centos.alt.x86_64.rpm | 386 kB 00:00 (5/20): python27-python-docutils-0.11-1.el6.centos.alt.noarch.rpm | 1.6 MB 00:01 (6/20): python27-python-jinja2-2.6-10.el6.centos.alt.noarch.rpm | 550 kB 00:00 (7/20): python27-python-libs-2.7.5-10.el6.centos.alt.x86_64.rpm | 5.5 MB 00:05 (8/20): python27-python-markupsafe-0.11-11.el6.centos.alt.x86_64.rpm | 25 kB 00:00 (9/20): python27-python-nose-1.3.0-1.el6.centos.alt.noarch.rpm | 290 kB 00:00 (10/20): python27-python-pygments-1.5-2.el6.centos.alt.noarch.rpm | 802 kB 00:00 (11/20): python27-python-setuptools-0.9.8-2.el6.centos.alt.noarch.rpm | 423 kB 00:00 (12/20): python27-python-simplejson-3.2.0-1.el6.centos.alt.x86_64.rpm | 174 kB 00:00 (13/20): python27-python-sphinx-1.1.3-7.el6.centos.alt.noarch.rpm | 1.1 MB 00:00 (14/20): python27-python-sqlalchemy-0.7.9-3.el6.centos.alt.x86_64.rpm | 2.1 MB 00:01 (15/20): python27-python-tools-2.7.5-10.el6.centos.alt.x86_64.rpm | 877 kB 00:00 (16/20): python27-python-virtualenv-1.10.1-2.el6.centos.alt.noarch.rpm | 1.4 MB 00:00 (17/20): python27-python-werkzeug-0.8.3-5.el6.centos.alt.noarch.rpm | 556 kB 00:00 (18/20): python27-runtime-1.1-16.el6.centos.alt.x86_64.rpm | 1.0 MB 00:00 (19/20): python27-tkinter-2.7.5-10.el6.centos.alt.x86_64.rpm | 333 kB 00:00 (20/20): scl-utils-20120927-27.el6_6.x86_64.rpm | 22 kB 00:00 ------------------------------------------------------------------------------------------------------------------------------ 合計 653 kB/s | 19 MB 00:29 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : scl-utils-20120927-27.el6_6.x86_64 1/20 インストールしています : python27-runtime-1.1-16.el6.centos.alt.x86_64 2/20 インストールしています : python27-python-libs-2.7.5-10.el6.centos.alt.x86_64 3/20 インストールしています : python27-python-2.7.5-10.el6.centos.alt.x86_64 4/20 インストールしています : python27-python-setuptools-0.9.8-2.el6.centos.alt.noarch 5/20 インストールしています : python27-python-pygments-1.5-2.el6.centos.alt.noarch 6/20 インストールしています : python27-python-nose-1.3.0-1.el6.centos.alt.noarch 7/20 インストールしています : python27-python-werkzeug-0.8.3-5.el6.centos.alt.noarch 8/20 インストールしています : python27-python-docutils-0.11-1.el6.centos.alt.noarch 9/20 インストールしています : python27-python-sqlalchemy-0.7.9-3.el6.centos.alt.x86_64 10/20 インストールしています : python27-python-simplejson-3.2.0-1.el6.centos.alt.x86_64 11/20 インストールしています : python27-tkinter-2.7.5-10.el6.centos.alt.x86_64 12/20 インストールしています : python27-python-markupsafe-0.11-11.el6.centos.alt.x86_64 13/20 インストールしています : python27-python-devel-2.7.5-10.el6.centos.alt.x86_64 14/20 インストールしています : python27-python-virtualenv-1.10.1-2.el6.centos.alt.noarch 15/20 インストールしています : python27-python-babel-0.9.6-7.el6.centos.alt.noarch 16/20 インストールしています : python27-python-jinja2-2.6-10.el6.centos.alt.noarch 17/20 インストールしています : python27-python-sphinx-1.1.3-7.el6.centos.alt.noarch 18/20 インストールしています : python27-1.1-16.el6.centos.alt.x86_64 19/20 インストールしています : python27-python-tools-2.7.5-10.el6.centos.alt.x86_64 20/20 Verifying : python27-python-sphinx-1.1.3-7.el6.centos.alt.noarch 1/20 Verifying : python27-python-werkzeug-0.8.3-5.el6.centos.alt.noarch 2/20 Verifying : python27-python-pygments-1.5-2.el6.centos.alt.noarch 3/20 Verifying : python27-python-nose-1.3.0-1.el6.centos.alt.noarch 4/20 Verifying : python27-python-virtualenv-1.10.1-2.el6.centos.alt.noarch 5/20 Verifying : python27-python-docutils-0.11-1.el6.centos.alt.noarch 6/20 Verifying : python27-python-sqlalchemy-0.7.9-3.el6.centos.alt.x86_64 7/20 Verifying : python27-python-setuptools-0.9.8-2.el6.centos.alt.noarch 8/20 Verifying : python27-python-tools-2.7.5-10.el6.centos.alt.x86_64 9/20 Verifying : python27-runtime-1.1-16.el6.centos.alt.x86_64 10/20 Verifying : python27-python-simplejson-3.2.0-1.el6.centos.alt.x86_64 11/20 Verifying : python27-tkinter-2.7.5-10.el6.centos.alt.x86_64 12/20 Verifying : python27-python-markupsafe-0.11-11.el6.centos.alt.x86_64 13/20 Verifying : scl-utils-20120927-27.el6_6.x86_64 14/20 Verifying : python27-python-libs-2.7.5-10.el6.centos.alt.x86_64 15/20 Verifying : python27-python-devel-2.7.5-10.el6.centos.alt.x86_64 16/20 Verifying : python27-python-2.7.5-10.el6.centos.alt.x86_64 17/20 Verifying : python27-1.1-16.el6.centos.alt.x86_64 18/20 Verifying : python27-python-babel-0.9.6-7.el6.centos.alt.noarch 19/20 Verifying : python27-python-jinja2-2.6-10.el6.centos.alt.noarch 20/20 インストール: python27.x86_64 0:1.1-16.el6.centos.alt python27-python-devel.x86_64 0:2.7.5-10.el6.centos.alt python27-python-setuptools.noarch 0:0.9.8-2.el6.centos.alt python27-python-tools.x86_64 0:2.7.5-10.el6.centos.alt python27-python-virtualenv.noarch 0:1.10.1-2.el6.centos.alt 依存性関連をインストールしました: python27-python.x86_64 0:2.7.5-10.el6.centos.alt python27-python-babel.noarch 0:0.9.6-7.el6.centos.alt python27-python-docutils.noarch 0:0.11-1.el6.centos.alt python27-python-jinja2.noarch 0:2.6-10.el6.centos.alt python27-python-libs.x86_64 0:2.7.5-10.el6.centos.alt python27-python-markupsafe.x86_64 0:0.11-11.el6.centos.alt python27-python-nose.noarch 0:1.3.0-1.el6.centos.alt python27-python-pygments.noarch 0:1.5-2.el6.centos.alt python27-python-simplejson.x86_64 0:3.2.0-1.el6.centos.alt python27-python-sphinx.noarch 0:1.1.3-7.el6.centos.alt python27-python-sqlalchemy.x86_64 0:0.7.9-3.el6.centos.alt python27-python-werkzeug.noarch 0:0.8.3-5.el6.centos.alt python27-runtime.x86_64 0:1.1-16.el6.centos.alt python27-tkinter.x86_64 0:2.7.5-10.el6.centos.alt scl-utils.x86_64 0:20120927-27.el6_6 完了しました!
ファイアウォール
httpsは443ポートを利用するため、開けておきます。
$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
iptables再起動
$ service iptables restart iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ] iptables: ファイアウォールルールを消去中: [ OK ] iptables: モジュールを取り外し中: [ OK ] iptables: ファイアウォールルールを適用中: [ OK ]
確認
$ iptables -L -n | grep 443 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
Let's Encrypt
インストール
GitHubから入手します。
# インストールするディレクトリは任意だが適当と思われる/usr/local/に入れる $ cd /usr/local/ $ git clone https://github.com/letsencrypt/letsencrypt Initialized empty Git repository in /usr/local/letsencrypt/.git/ remote: Counting objects: 32215, done. remote: Compressing objects: 100% (138/138), done. remote: Total 32215 (delta 79), reused 0 (delta 0), pack-reused 32077 Receiving objects: 100% (32215/32215), 8.38 MiB | 1.45 MiB/s, done. Resolving deltas: 100% (22799/22799), done. $ cd letsencrypt
依存パッケージのインストール
「letsencrypt-auto」というスクリプトがあり、実行するとsslやpythonといった依存パッケージをインストールしてくれる。
./letsencrypt-auto --help Bootstrapping dependencies for RedHat-based OSes... yum is /usr/bin/yum 読み込んだプラグイン:fastestmirror インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * rpmforge: ftp.kddilabs.jp * updates: ftp.iij.ad.jp パッケージ python-2.6.6-64.el6.x86_64 はインストール済みか最新バージョンです 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package python-devel.x86_64 0:2.6.6-64.el6 will be インストール ---> Package python-pip.noarch 0:7.1.0-1.el6 will be インストール --> 依存性の処理をしています: python-setuptools のパッケージ: python-pip-7.1.0-1.el6.noarch ---> Package python-tools.x86_64 0:2.6.6-64.el6 will be インストール --> 依存性の処理をしています: tkinter = 2.6.6-64.el6 のパッケージ: python-tools-2.6.6-64.el6.x86_64 ---> Package python-virtualenv.noarch 0:1.10.1-1.el6 will be インストール --> トランザクションの確認を実行しています。 ---> Package python-setuptools.noarch 0:0.6.10-3.el6 will be インストール ---> Package tkinter.x86_64 0:2.6.6-64.el6 will be インストール --> 依存性の処理をしています: libtk8.5.so()(64bit) のパッケージ: tkinter-2.6.6-64.el6.x86_64 --> 依存性の処理をしています: libtcl8.5.so()(64bit) のパッケージ: tkinter-2.6.6-64.el6.x86_64 --> 依存性の処理をしています: libTix.so()(64bit) のパッケージ: tkinter-2.6.6-64.el6.x86_64 --> トランザクションの確認を実行しています。 ---> Package tcl.x86_64 1:8.5.7-6.el6 will be インストール ---> Package tix.x86_64 1:8.4.3-5.el6 will be インストール ---> Package tk.x86_64 1:8.5.7-5.el6 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 ============================================================================================================================== インストールしています: python-devel x86_64 2.6.6-64.el6 base 172 k python-pip noarch 7.1.0-1.el6 epel 1.5 M python-tools x86_64 2.6.6-64.el6 base 870 k python-virtualenv noarch 1.10.1-1.el6 epel 1.3 M 依存性関連でのインストールをします。: python-setuptools noarch 0.6.10-3.el6 base 336 k tcl x86_64 1:8.5.7-6.el6 base 1.9 M tix x86_64 1:8.4.3-5.el6 base 252 k tk x86_64 1:8.5.7-5.el6 base 1.4 M tkinter x86_64 2.6.6-64.el6 base 257 k トランザクションの要約 ============================================================================================================================== インストール 9 パッケージ 総ダウンロード容量: 8.0 M インストール済み容量: 22 M パッケージをダウンロードしています: (1/9): python-devel-2.6.6-64.el6.x86_64.rpm | 172 kB 00:00 (2/9): python-pip-7.1.0-1.el6.noarch.rpm | 1.5 MB 00:01 (3/9): python-setuptools-0.6.10-3.el6.noarch.rpm | 336 kB 00:00 (4/9): python-tools-2.6.6-64.el6.x86_64.rpm | 870 kB 00:01 (5/9): python-virtualenv-1.10.1-1.el6.noarch.rpm | 1.3 MB 00:01 (6/9): tcl-8.5.7-6.el6.x86_64.rpm | 1.9 MB 00:01 (7/9): tix-8.4.3-5.el6.x86_64.rpm | 252 kB 00:00 (8/9): tk-8.5.7-5.el6.x86_64.rpm | 1.4 MB 00:01 (9/9): tkinter-2.6.6-64.el6.x86_64.rpm | 257 kB 00:00 ------------------------------------------------------------------------------------------------------------------------------ 合計 770 kB/s | 8.0 MB 00:10 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : 1:tcl-8.5.7-6.el6.x86_64 1/9 インストールしています : 1:tk-8.5.7-5.el6.x86_64 2/9 インストールしています : python-setuptools-0.6.10-3.el6.noarch 3/9 インストールしています : 1:tix-8.4.3-5.el6.x86_64 4/9 インストールしています : tkinter-2.6.6-64.el6.x86_64 5/9 インストールしています : python-devel-2.6.6-64.el6.x86_64 6/9 インストールしています : python-virtualenv-1.10.1-1.el6.noarch 7/9 インストールしています : python-tools-2.6.6-64.el6.x86_64 8/9 インストールしています : python-pip-7.1.0-1.el6.noarch 9/9 Verifying : python-devel-2.6.6-64.el6.x86_64 1/9 Verifying : python-pip-7.1.0-1.el6.noarch 2/9 Verifying : 1:tix-8.4.3-5.el6.x86_64 3/9 Verifying : python-tools-2.6.6-64.el6.x86_64 4/9 Verifying : python-virtualenv-1.10.1-1.el6.noarch 5/9 Verifying : 1:tcl-8.5.7-6.el6.x86_64 6/9 Verifying : 1:tk-8.5.7-5.el6.x86_64 7/9 Verifying : python-setuptools-0.6.10-3.el6.noarch 8/9 Verifying : tkinter-2.6.6-64.el6.x86_64 9/9 インストール: python-devel.x86_64 0:2.6.6-64.el6 python-pip.noarch 0:7.1.0-1.el6 python-tools.x86_64 0:2.6.6-64.el6 python-virtualenv.noarch 0:1.10.1-1.el6 依存性関連をインストールしました: python-setuptools.noarch 0:0.6.10-3.el6 tcl.x86_64 1:8.5.7-6.el6 tix.x86_64 1:8.4.3-5.el6 tk.x86_64 1:8.5.7-5.el6 tkinter.x86_64 0:2.6.6-64.el6 完了しました! 読み込んだプラグイン:fastestmirror インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * rpmforge: ftp.kddilabs.jp * updates: ftp.iij.ad.jp パッケージ openssl-1.0.1e-42.el6_7.2.x86_64 はインストール済みか最新バージョンです パッケージ ca-certificates-2015.2.4-65.0.1.el6_6.noarch はインストール済みか最新バージョンです 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package augeas-libs.x86_64 0:1.0.0-10.el6 will be インストール ---> Package dialog.x86_64 0:1.1-9.20080819.1.el6 will be インストール ---> Package gcc.x86_64 0:4.4.7-16.el6 will be インストール --> 依存性の処理をしています: libgomp = 4.4.7-16.el6 のパッケージ: gcc-4.4.7-16.el6.x86_64 --> 依存性の処理をしています: cpp = 4.4.7-16.el6 のパッケージ: gcc-4.4.7-16.el6.x86_64 --> 依存性の処理をしています: glibc-devel >= 2.2.90-12 のパッケージ: gcc-4.4.7-16.el6.x86_64 --> 依存性の処理をしています: cloog-ppl >= 0.15 のパッケージ: gcc-4.4.7-16.el6.x86_64 --> 依存性の処理をしています: libgomp.so.1()(64bit) のパッケージ: gcc-4.4.7-16.el6.x86_64 ---> Package libffi-devel.x86_64 0:3.0.5-3.2.el6 will be インストール ---> Package openssl-devel.x86_64 0:1.0.1e-42.el6_7.2 will be インストール --> 依存性の処理をしています: zlib-devel のパッケージ: openssl-devel-1.0.1e-42.el6_7.2.x86_64 --> 依存性の処理をしています: krb5-devel のパッケージ: openssl-devel-1.0.1e-42.el6_7.2.x86_64 ---> Package redhat-rpm-config.noarch 0:9.0.3-44.el6.centos will be インストール --> トランザクションの確認を実行しています。 ---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be インストール --> 依存性の処理をしています: libppl_c.so.2()(64bit) のパッケージ: cloog-ppl-0.15.7-1.2.el6.x86_64 --> 依存性の処理をしています: libppl.so.7()(64bit) のパッケージ: cloog-ppl-0.15.7-1.2.el6.x86_64 ---> Package cpp.x86_64 0:4.4.7-16.el6 will be インストール --> 依存性の処理をしています: libmpfr.so.1()(64bit) のパッケージ: cpp-4.4.7-16.el6.x86_64 ---> Package glibc-devel.x86_64 0:2.12-1.166.el6_7.7 will be インストール --> 依存性の処理をしています: glibc-headers = 2.12-1.166.el6_7.7 のパッケージ: glibc-devel-2.12-1.166.el6_7.7.x86_64 --> 依存性の処理をしています: glibc-headers のパッケージ: glibc-devel-2.12-1.166.el6_7.7.x86_64 ---> Package krb5-devel.x86_64 0:1.10.3-42.el6 will be インストール --> 依存性の処理をしています: libselinux-devel のパッケージ: krb5-devel-1.10.3-42.el6.x86_64 --> 依存性の処理をしています: libcom_err-devel のパッケージ: krb5-devel-1.10.3-42.el6.x86_64 --> 依存性の処理をしています: keyutils-libs-devel のパッケージ: krb5-devel-1.10.3-42.el6.x86_64 ---> Package libgomp.x86_64 0:4.4.7-16.el6 will be インストール ---> Package zlib-devel.x86_64 0:1.2.3-29.el6 will be インストール --> トランザクションの確認を実行しています。 ---> Package glibc-headers.x86_64 0:2.12-1.166.el6_7.7 will be インストール --> 依存性の処理をしています: kernel-headers >= 2.2.1 のパッケージ: glibc-headers-2.12-1.166.el6_7.7.x86_64 --> 依存性の処理をしています: kernel-headers のパッケージ: glibc-headers-2.12-1.166.el6_7.7.x86_64 ---> Package keyutils-libs-devel.x86_64 0:1.4-5.el6 will be インストール ---> Package libcom_err-devel.x86_64 0:1.41.12-22.el6 will be インストール ---> Package libselinux-devel.x86_64 0:2.0.94-5.8.el6 will be インストール --> 依存性の処理をしています: libsepol-devel >= 2.0.32-1 のパッケージ: libselinux-devel-2.0.94-5.8.el6.x86_64 --> 依存性の処理をしています: pkgconfig(libsepol) のパッケージ: libselinux-devel-2.0.94-5.8.el6.x86_64 ---> Package mpfr.x86_64 0:2.4.1-6.el6 will be インストール ---> Package ppl.x86_64 0:0.10.2-11.el6 will be インストール --> トランザクションの確認を実行しています。 ---> Package kernel-headers.x86_64 0:2.6.32-573.18.1.el6 will be インストール ---> Package libsepol-devel.x86_64 0:2.0.41-4.el6 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 ============================================================================================================================== インストールしています: augeas-libs x86_64 1.0.0-10.el6 base 314 k dialog x86_64 1.1-9.20080819.1.el6 base 197 k gcc x86_64 4.4.7-16.el6 base 10 M libffi-devel x86_64 3.0.5-3.2.el6 base 18 k openssl-devel x86_64 1.0.1e-42.el6_7.2 updates 1.2 M redhat-rpm-config noarch 9.0.3-44.el6.centos base 59 k 依存性関連でのインストールをします。: cloog-ppl x86_64 0.15.7-1.2.el6 base 93 k cpp x86_64 4.4.7-16.el6 base 3.7 M glibc-devel x86_64 2.12-1.166.el6_7.7 updates 986 k glibc-headers x86_64 2.12-1.166.el6_7.7 updates 615 k kernel-headers x86_64 2.6.32-573.18.1.el6 updates 3.9 M keyutils-libs-devel x86_64 1.4-5.el6 base 29 k krb5-devel x86_64 1.10.3-42.el6 base 502 k libcom_err-devel x86_64 1.41.12-22.el6 base 33 k libgomp x86_64 4.4.7-16.el6 base 134 k libselinux-devel x86_64 2.0.94-5.8.el6 base 137 k libsepol-devel x86_64 2.0.41-4.el6 base 64 k mpfr x86_64 2.4.1-6.el6 base 157 k ppl x86_64 0.10.2-11.el6 base 1.3 M zlib-devel x86_64 1.2.3-29.el6 base 44 k トランザクションの要約 ============================================================================================================================== インストール 20 パッケージ 総ダウンロード容量: 23 M インストール済み容量: 45 M パッケージをダウンロードしています: (1/20): augeas-libs-1.0.0-10.el6.x86_64.rpm | 314 kB 00:00 (2/20): cloog-ppl-0.15.7-1.2.el6.x86_64.rpm | 93 kB 00:00 (3/20): cpp-4.4.7-16.el6.x86_64.rpm | 3.7 MB 00:01 (4/20): dialog-1.1-9.20080819.1.el6.x86_64.rpm | 197 kB 00:00 (5/20): gcc-4.4.7-16.el6.x86_64.rpm | 10 MB 00:03 (6/20): glibc-devel-2.12-1.166.el6_7.7.x86_64.rpm | 986 kB 00:01 (7/20): glibc-headers-2.12-1.166.el6_7.7.x86_64.rpm | 615 kB 00:00 (8/20): kernel-headers-2.6.32-573.18.1.el6.x86_64.rpm | 3.9 MB 00:01 (9/20): keyutils-libs-devel-1.4-5.el6.x86_64.rpm | 29 kB 00:00 (10/20): krb5-devel-1.10.3-42.el6.x86_64.rpm | 502 kB 00:00 (11/20): libcom_err-devel-1.41.12-22.el6.x86_64.rpm | 33 kB 00:00 (12/20): libffi-devel-3.0.5-3.2.el6.x86_64.rpm | 18 kB 00:00 (13/20): libgomp-4.4.7-16.el6.x86_64.rpm | 134 kB 00:00 (14/20): libselinux-devel-2.0.94-5.8.el6.x86_64.rpm | 137 kB 00:00 (15/20): libsepol-devel-2.0.41-4.el6.x86_64.rpm | 64 kB 00:00 (16/20): mpfr-2.4.1-6.el6.x86_64.rpm | 157 kB 00:00 (17/20): openssl-devel-1.0.1e-42.el6_7.2.x86_64.rpm | 1.2 MB 00:01 (18/20): ppl-0.10.2-11.el6.x86_64.rpm | 1.3 MB 00:01 (19/20): redhat-rpm-config-9.0.3-44.el6.centos.noarch.rpm | 59 kB 00:00 (20/20): zlib-devel-1.2.3-29.el6.x86_64.rpm | 44 kB 00:00 ------------------------------------------------------------------------------------------------------------------------------ 合計 1.3 MB/s | 23 MB 00:18 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : zlib-devel-1.2.3-29.el6.x86_64 1/20 インストールしています : libcom_err-devel-1.41.12-22.el6.x86_64 2/20 インストールしています : kernel-headers-2.6.32-573.18.1.el6.x86_64 3/20 インストールしています : glibc-headers-2.12-1.166.el6_7.7.x86_64 4/20 インストールしています : glibc-devel-2.12-1.166.el6_7.7.x86_64 5/20 インストールしています : mpfr-2.4.1-6.el6.x86_64 6/20 インストールしています : cpp-4.4.7-16.el6.x86_64 7/20 インストールしています : ppl-0.10.2-11.el6.x86_64 8/20 インストールしています : cloog-ppl-0.15.7-1.2.el6.x86_64 9/20 インストールしています : libsepol-devel-2.0.41-4.el6.x86_64 10/20 インストールしています : libselinux-devel-2.0.94-5.8.el6.x86_64 11/20 インストールしています : keyutils-libs-devel-1.4-5.el6.x86_64 12/20 インストールしています : krb5-devel-1.10.3-42.el6.x86_64 13/20 インストールしています : libgomp-4.4.7-16.el6.x86_64 14/20 インストールしています : gcc-4.4.7-16.el6.x86_64 15/20 インストールしています : openssl-devel-1.0.1e-42.el6_7.2.x86_64 16/20 インストールしています : augeas-libs-1.0.0-10.el6.x86_64 17/20 インストールしています : redhat-rpm-config-9.0.3-44.el6.centos.noarch 18/20 インストールしています : dialog-1.1-9.20080819.1.el6.x86_64 19/20 インストールしています : libffi-devel-3.0.5-3.2.el6.x86_64 20/20 Verifying : libgomp-4.4.7-16.el6.x86_64 1/20 Verifying : keyutils-libs-devel-1.4-5.el6.x86_64 2/20 Verifying : libsepol-devel-2.0.41-4.el6.x86_64 3/20 Verifying : openssl-devel-1.0.1e-42.el6_7.2.x86_64 4/20 Verifying : ppl-0.10.2-11.el6.x86_64 5/20 Verifying : krb5-devel-1.10.3-42.el6.x86_64 6/20 Verifying : gcc-4.4.7-16.el6.x86_64 7/20 Verifying : mpfr-2.4.1-6.el6.x86_64 8/20 Verifying : libffi-devel-3.0.5-3.2.el6.x86_64 9/20 Verifying : kernel-headers-2.6.32-573.18.1.el6.x86_64 10/20 Verifying : libselinux-devel-2.0.94-5.8.el6.x86_64 11/20 Verifying : dialog-1.1-9.20080819.1.el6.x86_64 12/20 Verifying : libcom_err-devel-1.41.12-22.el6.x86_64 13/20 Verifying : glibc-headers-2.12-1.166.el6_7.7.x86_64 14/20 Verifying : zlib-devel-1.2.3-29.el6.x86_64 15/20 Verifying : cpp-4.4.7-16.el6.x86_64 16/20 Verifying : glibc-devel-2.12-1.166.el6_7.7.x86_64 17/20 Verifying : cloog-ppl-0.15.7-1.2.el6.x86_64 18/20 Verifying : redhat-rpm-config-9.0.3-44.el6.centos.noarch 19/20 Verifying : augeas-libs-1.0.0-10.el6.x86_64 20/20 インストール: augeas-libs.x86_64 0:1.0.0-10.el6 dialog.x86_64 0:1.1-9.20080819.1.el6 gcc.x86_64 0:4.4.7-16.el6 libffi-devel.x86_64 0:3.0.5-3.2.el6 openssl-devel.x86_64 0:1.0.1e-42.el6_7.2 redhat-rpm-config.noarch 0:9.0.3-44.el6.centos 依存性関連をインストールしました: cloog-ppl.x86_64 0:0.15.7-1.2.el6 cpp.x86_64 0:4.4.7-16.el6 glibc-devel.x86_64 0:2.12-1.166.el6_7.7 glibc-headers.x86_64 0:2.12-1.166.el6_7.7 kernel-headers.x86_64 0:2.6.32-573.18.1.el6 keyutils-libs-devel.x86_64 0:1.4-5.el6 krb5-devel.x86_64 0:1.10.3-42.el6 libcom_err-devel.x86_64 0:1.41.12-22.el6 libgomp.x86_64 0:4.4.7-16.el6 libselinux-devel.x86_64 0:2.0.94-5.8.el6 libsepol-devel.x86_64 0:2.0.41-4.el6 mpfr.x86_64 0:2.4.1-6.el6 ppl.x86_64 0:0.10.2-11.el6 zlib-devel.x86_64 0:1.2.3-29.el6 完了しました! 読み込んだプラグイン:fastestmirror インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * rpmforge: ftp.kddilabs.jp * updates: ftp.iij.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package mod_ssl.x86_64 1:2.2.15-47.el6.centos.3 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 ============================================================================================================================== インストールしています: mod_ssl x86_64 1:2.2.15-47.el6.centos.3 updates 95 k トランザクションの要約 ============================================================================================================================== インストール 1 パッケージ 総ダウンロード容量: 95 k インストール済み容量: 187 k パッケージをダウンロードしています: mod_ssl-2.2.15-47.el6.centos.3.x86_64.rpm | 95 kB 00:00 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : 1:mod_ssl-2.2.15-47.el6.centos.3.x86_64 1/1 Verifying : 1:mod_ssl-2.2.15-47.el6.centos.3.x86_64 1/1 インストール: mod_ssl.x86_64 1:2.2.15-47.el6.centos.3 完了しました! Checking for new version... Creating virtual environment... Installing Python packages... Requesting root privileges to run letsencrypt... /root/.local/share/letsencrypt/bin/letsencrypt --no-self-upgrade --help /root/.local/share/letsencrypt/lib/python2.6/site-packages/cryptography/__init__.py:25: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. DeprecationWarning letsencrypt-auto [SUBCOMMAND] [options] [-d domain] [-d domain] ... The Let's Encrypt agent can obtain and install HTTPS/TLS/SSL certificates. By default, it will attempt to use a webserver both for obtaining and installing the cert. Major SUBCOMMANDS are: (default) run Obtain & install a cert in your current webserver certonly Obtain cert, but do not install it (aka "auth") install Install a previously obtained cert in a server renew Renew previously obtained certs that are near expiry revoke Revoke a previously obtained certificate rollback Rollback server configuration changes made during install config_changes Show changes made to server config during installation plugins Display information about installed plugins Choice of server plugins for obtaining and installing cert: --apache Use the Apache plugin for authentication & installation --standalone Run a standalone webserver for authentication (nginx support is experimental, buggy, and not installed by default) --webroot Place files in a server's webroot folder for authentication OR use different plugins to obtain (authenticate) the cert and then install it: --authenticator standalone --installer apache More detailed help: -h, --help [topic] print this message, or detailed help on a topic; the available topics are: all, automation, paths, security, testing, or any of the subcommands or plugins (certonly, install, nginx, apache, standalone, webroot, etc)
証明書の発行
./letsencrypt-auto certonly --webroot --webroot-path /home/apache/vhost/example/html \ -d example.co.jp -d www.example.co.jp \ --agree-tos -m hoge@example.co.jp Checking for new version... Creating virtual environment... Installing Python packages... Requesting root privileges to run letsencrypt... /root/.local/share/letsencrypt/bin/letsencrypt --no-self-upgrade certonly --webroot --webroot-path /home/apache/vhost/example/html -d example.co.jp -d www.example.co.jp --agree-tos -m hoge@example.co.jp /root/.local/share/letsencrypt/lib/python2.6/site-packages/cryptography/__init__.py:25: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. DeprecationWarning Version: 1.1-20080819 Version: 1.1-20080819 IMPORTANT NOTES: - If you lose your account credentials, you can recover through e-mails sent to example@co.jp. - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.co.jp/fullchain.pem. Your cert will expire on 2016-05-29. To obtain a new version of the certificate in the future, simply run Let's Encrypt again. - Your account credentials have been saved in your Let's Encrypt 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 Let's Encrypt so making regular backups of this folder is ideal. - If you like Let's Encrypt, 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/example.co.jp/ 配下に証明書(のリンク)が生成されている。
$ ls -la /etc/letsencrypt/live/example.co.jp/ 合計 8 drwxr-xr-x. 2 root root 4096 3月 1 07:37 2016 . drwx------. 3 root root 4096 3月 1 07:37 2016 .. lrwxrwxrwx. 1 root root 40 3月 1 07:37 2016 cert.pem -> ../../archive/example.co.jp/cert1.pem # 証明書 lrwxrwxrwx. 1 root root 41 3月 1 07:37 2016 chain.pem -> ../../archive/example.co.jp/chain1.pem # 証明書チェーン lrwxrwxrwx. 1 root root 45 3月 1 07:37 2016 fullchain.pem -> ../../archive/example.co.jp/fullchain1.pem # 証明書(cert.pemとchain.pemをまとめたもの) lrwxrwxrwx. 1 root root 43 3月 1 07:37 2016 privkey.pem -> ../../archive/example.co.jp/privkey1.pemsh # 秘密鍵
Apacheのhttps対応
ssl.confの設定
# # When we also provide SSL we have to listen to the # the HTTPS port in addition. # Listen 443 https ## ## SSL Global Context ## ## All SSL configuration in this context applies both to ## the main server and all SSL-enabled virtual hosts. ## # Pass Phrase Dialog: # Configure the pass phrase gathering process. # The filtering dialog program (`builtin' is a internal # terminal dialog) has to provide the pass phrase on stdout. SSLPassPhraseDialog builtin # Inter-Process Session Cache: # Configure the SSL Session Cache: First the mechanism # to use and second the expiring timeout (in seconds). SSLSessionCache shmcb:/run/httpd/sslcache(512000) SSLSessionCacheTimeout 300 # Pseudo Random Number Generator (PRNG): # Configure one or more sources to seed the PRNG of the # SSL library. The seed data should be of good random quality. # WARNING! On some platforms /dev/random blocks if not enough entropy # is available. This means you then cannot use the /dev/random device # because it would lead to very long connection times (as long as # it requires to make more entropy available). But usually those # platforms additionally provide a /dev/urandom device which doesn't # block. So, if available, use this one instead. Read the mod_ssl User # Manual for more details. SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin #SSLRandomSeed startup file:/dev/random 512 #SSLRandomSeed connect file:/dev/random 512 #SSLRandomSeed connect file:/dev/urandom 512 # # Use "SSLCryptoDevice" to enable any supported hardware # accelerators. Use "openssl engine -v" to list supported # engine names. NOTE: If you enable an accelerator and the # server does not start, consult the error logs and ensure # your accelerator is functioning properly. # SSLCryptoDevice builtin #SSLCryptoDevice ubsec
httpd.confの設定
sslモジュールをロードするように以下を追記します。
LoadModule ssl_module modules/mod_ssl.so
バーチャルホストの設定
当方の環境はバーチャルホストにしているので、バーチャルホストの設定ファイルに以下を追記
/etc/httpd/conf.d/vhosts/example.conf
<VirtualHost *:443> ServerAdmin root@example.co.jp DocumentRoot /home/hoge/example.co.jp/html/ ServerName example.co.jp ServerAlias www.example.co.jp ErrorLog /home/hoge/example.co.jp/logs/error_log CustomLog /home/hoge/example.co.jp/logs/access_log common SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLCertificateFile /etc/letsencrypt/live/example.co.jp/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.co.jp/privkey.pem SSLCACertificateFile /etc/letsencrypt/live/example.co.jp/fullchain.pem <Directory /> Options Indexes AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost>
ここまで来たらhttpdを再起動してhttpsで接続できるはずです。
httpsを強制させる方法
httpd.confに以下を追記し、mod_rewriteモジュールをロードする。
LoadModule rewrite_module modules/mod_rewrite.so
バーチャルホストなもんで、以下のようにmod_rewriteでhttpsで接続するようにしてやります。
/etc/httpd/conf.d/vhosts/example.conf
<VirtualHost *:80> <!-- 中略 --> <ifModule mod_rewrite.c> RewriteEngine On RewriteLog "/var/log/httpd/rewrite_log" RewriteLogLevel 0 RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </ifModule> </VirtualHost>
簡単に説明すると、RewriteCondはrewriteする条件で、例の場合は443ポート以外で接続してきた場合、つまりhttps以外の場合ってことですね。
RewriteRuleはrewrite先を記述する。ちなみに末尾の[R, L]はオプションです。
力尽きたので、詳細はここを参考にしてください。。。
参考
User Guide — Certbot 0.10.0.dev0 documentation
Let’s Encrypt サーバー証明書の取得と自動更新設定メモ | あぱーブログ
Let's Encrypt編 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。
http://jetstreamair.blogspot.jp/2015/12/ssllets-encryptcentos6.html
Redhat / CentOS 6.x users need python 2.7 - Server - Let's Encrypt Community Support
Redhat6.x + SCL 使う時に気をつけたい3つのポイント - AWS / PHP / Python ちょいメモ
apacheでhttpへのアクセスをhttpsへ自動リダイレクトする - Qiita
HTTPでアクセスした時、自動的にHTTPSにrewriteする
Apache : mod_rewriteリファレンス - dawgsdk.org
RSA鍵、証明書のファイルフォーマットについて - Qiita
opensslコマンドで証明書情報を確認したい。 | SSL・電子証明書ならGMOグローバルサイン
遭遇したエラー
Invalid command 'SSLEngine' 〜
$ service httpd restart httpd を停止中: [ OK ] httpd を起動中: Syntax error on line 28 of /etc/httpd/conf.d/vhosts/example.conf: Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
原因
httpd.confにsslモジュールを読み込む設定をしていなかった。
対応
httpd.confに以下を追記
LoadModule ssl_module modules/mod_ssl.so
参考
mod_sslが有効にならない - myChuno::blog
SSLPassPhraseDialog: file '/usr/libexec/httpd-ssl-pass-dialog' does not exist
$ service httpd restart httpd を停止中: [ OK ] httpd を起動中: Syntax error on line 19 of /etc/httpd/conf.d/ssl.conf: SSLPassPhraseDialog: file '/usr/libexec/httpd-ssl-pass-dialog' does not exist [失敗]
原因
/usr/libexec/httpd-ssl-pass-dialogがない。
参考にしたssl.confは
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
になってたんですが、これは「SSLのパスフレーズの入力にhttpd-ssl-pass-dialogってスクリプトを使います」ってことだったらしい。
httpd-ssl-pass-dialogなんてスクリプトは作ってないし、そもそもLet's Encryptで生成したSSLのキーにパスワードは必要ないので、
SSLPassPhraseDialog builtin
で良い(ちなみに、SSLのキーにパスワードがかかっているときはダイアログが表示され、手入力が必要)。
対応
参考
Apacheの起動時にSSLのパスフレーズを省略する方法 - それマグで!
Apache2.4 + mod_ssl + SSL証明書 = ちょいつまづく? | 日記の間 | あかつきのお宿
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
$ service httpd restart httpd を停止中: [失敗] httpd を起動中: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
原因
httpd.confのServerNameディレクティブが未設定だったため
対応
httpd.confのServerName設定する。
# httpd.conf.defaultは変更前のhttpd.conf $ diff /etc/httpd/conf/httpd.conf.default /etc/httpd/conf/httpd.conf 276c278 < #ServerName www.example.com:80 --- > ServerName localhost:80
参考
Apache: 起動エラー – Could not reliably determine the server’s fully qualified domain name