Let's Encryptで無料の暗号化鍵を発行しよう!
ここでは、無料で使える認証局、Let's Encryptを使った証明書の取得について掲載しています。
Let's Encryptとは…?
通常、SSLでの認証に必要な証明書はベリサインやグローバルサインなどの認証局から発行される証明書と鍵を使い、通信の暗号化と発信者の信頼性を確保(実在証明)します。
しかし、この手続きには費用がかかります。
かと言って、自前の証明書と鍵では、通信の暗号化は可能ですが、実在証明をすることはできません。勝手に鍵を作って、「私は安全ですよ^^」と勝手に騒いでるだけ…って状態です。
なので、自前の証明書と鍵を使った場合、ブラウザでは以下のような警告が表示されます。

もちろんこのまま使用を続けることも可能ですが、初めてそのサイトを見た人は「え…大丈夫なの?」って思いますよね?でも、所詮自宅サーバ、費用はかけたくない…。
そこで登場するのがLet's Encrypt。Let's Encryptはネット通信の暗号化を広く普及させることを目的に2016年に始まったプロジェクトで、無料で使える認証局です。最近のブラウザなら上でご紹介したような警告が表示されることがありません。
ただし、無料なのはClass 1(ドメイン認証)に限ります。Class 1ではドメインの所有者のみの証明になります。信頼度という点では「自分で発行した証明書よりはマシ」程度に考えた方が良いでしょう。
業務で使う場合は有料のものを使った方が良さそうです。
詳しくは、Let's Encrypt 総合ポータルをご覧ください。
Let's Encryptによる認証鍵の発行
前提条件として、以下を満たす必要があります。
- ・ドメイン名、ホスト名でサーバにアクセスできること
Webサーバ構築済みとして話が進みますが、Webサーバ等はこの時点では必要ありません。
[root@co ~]# yum -y --enablerepo=epel install python2-certbot-apache
読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 8.6 kB 00:00 * base: ftp-srv2.kddilabs.jp * epel: www.ftp.ne.jp * extras: ftp-srv2.kddilabs.jp * updates: ftp-srv2.kddilabs.jp epel | 5.4 kB 00:00 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ python2-certbot-apache.noarch 0:1.0.0-1.el7 を インストール --> 依存性の処理をしています: certbot >= 0.39.0 のパッケージ: python2-certbot-apache-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-acme >= 0.29.0 のパッケージ: python2-certbot-apache-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-certbot >= 0.39.0 のパッケージ: python2-certbot-apache-1.0.0-1.el7.noarch --> 依存性の処理をしています: mod_ssl のパッケージ: python2-certbot-apache-1.0.0-1.el7.noarch --> 依存性の処理をしています: pytest のパッケージ: python2-certbot-apache-1.0.0-1.el7.noarch --> 依存性の処理をしています: python-augeas のパッケージ: python2-certbot-apache-1.0.0-1.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ certbot.noarch 0:1.0.0-1.el7 を インストール --> 依存性の処理をしています: /usr/sbin/semanage のパッケージ: certbot-1.0.0-1.el7.noarch ---> パッケージ mod_ssl.x86_64 1:2.4.6-90.el7.centos を インストール --> 依存性の処理をしています: httpd-mmn = 20120211x8664 のパッケージ: 1:mod_ssl-2.4.6-90.el7.centos.x86_64 --> 依存性の処理をしています: httpd = 2.4.6-90.el7.centos のパッケージ: 1:mod_ssl-2.4.6-90.el7.centos.x86_64 --> 依存性の処理をしています: httpd のパッケージ: 1:mod_ssl-2.4.6-90.el7.centos.x86_64 ---> パッケージ pytest.noarch 0:2.7.0-2.el7 を インストール --> 依存性の処理をしています: python-py >= 1.4.25 のパッケージ: pytest-2.7.0-2.el7.noarch --> 依存性の処理をしています: python-setuptools のパッケージ: pytest-2.7.0-2.el7.noarch ---> パッケージ python-augeas.noarch 0:0.5.0-2.el7 を インストール --> 依存性の処理をしています: augeas-libs のパッケージ: python-augeas-0.5.0-2.el7.noarch ---> パッケージ python2-acme.noarch 0:1.0.0-1.el7 を インストール --> 依存性の処理をしています: pyOpenSSL >= 0.13.1 のパッケージ: python2-acme-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-josepy >= 1.1.0 のパッケージ: python2-acme-1.0.0-1.el7.noarch --> 依存性の処理をしています: python-ndg_httpsclient のパッケージ: python2-acme-1.0.0-1.el7.noarch --> 依存性の処理をしています: python-requests-toolbelt のパッケージ: python2-acme-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-cryptography のパッケージ: python2-acme-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-pyasn1 のパッケージ: python2-acme-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-pyrfc3339 のパッケージ: python2-acme-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-requests のパッケージ: python2-acme-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-six のパッケージ: python2-acme-1.0.0-1.el7.noarch --> 依存性の処理をしています: pytz のパッケージ: python2-acme-1.0.0-1.el7.noarch ---> パッケージ python2-certbot.noarch 0:1.0.0-1.el7 を インストール --> 依存性の処理をしています: python-parsedatetime のパッケージ: python2-certbot-1.0.0-1.el7.noarch --> 依存性の処理をしています: python-zope-component のパッケージ: python2-certbot-1.0.0-1.el7.noarch --> 依存性の処理をしています: python-zope-interface のパッケージ: python2-certbot-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-configargparse のパッケージ: python2-certbot-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-distro のパッケージ: python2-certbot-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-future のパッケージ: python2-certbot-1.0.0-1.el7.noarch --> 依存性の処理をしています: python2-mock のパッケージ: python2-certbot-1.0.0-1.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ augeas-libs.x86_64 0:1.4.0-9.el7 を インストール ---> パッケージ httpd.x86_64 0:2.4.6-90.el7.centos を インストール --> 依存性の処理をしています: httpd-tools = 2.4.6-90.el7.centos のパッケージ: httpd-2.4.6-90.el7.centos.x86_64 --> 依存性の処理をしています: /etc/mime.types のパッケージ: httpd-2.4.6-90.el7.centos.x86_64 --> 依存性の処理をしています: libaprutil-1.so.0()(64bit) のパッケージ: httpd-2.4.6-90.el7.centos.x86_64 --> 依存性の処理をしています: libapr-1.so.0()(64bit) のパッケージ: httpd-2.4.6-90.el7.centos.x86_64 ---> パッケージ policycoreutils-python.x86_64 0:2.5-33.el7 を インストール --> 依存性の処理をしています: setools-libs >= 3.3.8-4 のパッケージ: policycoreutils-python-2.5-33.el7.x86_64 --> 依存性の処理をしています: libsemanage-python >= 2.5-14 のパッケージ: policycoreutils-python-2.5-33.el7.x86_64 --> 依存性の処理をしています: audit-libs-python >= 2.1.3-4 のパッケージ: policycoreutils-python-2.5-33.el7.x86_64 --> 依存性の処理をしています: python-IPy のパッケージ: policycoreutils-python-2.5-33.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.4)(64bit) のパッケージ: policycoreutils-python-2.5-33.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.2)(64bit) のパッケージ: policycoreutils-python-2.5-33.el7.x86_64 --> 依存性の処理をしています: libcgroup のパッケージ: policycoreutils-python-2.5-33.el7.x86_64 --> 依存性の処理をしています: libapol.so.4(VERS_4.0)(64bit) のパッケージ: policycoreutils-python-2.5-33.el7.x86_64 --> 依存性の処理をしています: checkpolicy のパッケージ: policycoreutils-python-2.5-33.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1()(64bit) のパッケージ: policycoreutils-python-2.5-33.el7.x86_64 --> 依存性の処理をしています: libapol.so.4()(64bit) のパッケージ: policycoreutils-python-2.5-33.el7.x86_64 ---> パッケージ pyOpenSSL.x86_64 0:0.13.1-4.el7 を インストール ---> パッケージ python-ndg_httpsclient.noarch 0:0.3.2-1.el7 を インストール ---> パッケージ python-py.noarch 0:1.4.32-1.el7 を インストール ---> パッケージ python-requests.noarch 0:2.6.0-8.el7_7 を インストール --> 依存性の処理をしています: python-urllib3 >= 1.10.2-1 のパッケージ: python-requests-2.6.0-8.el7_7.noarch --> 依存性の処理をしています: python-chardet >= 2.2.1-1 のパッケージ: python-requests-2.6.0-8.el7_7.noarch ---> パッケージ python-requests-toolbelt.noarch 0:0.8.0-1.el7 を インストール ---> パッケージ python-setuptools.noarch 0:0.9.8-7.el7 を インストール --> 依存性の処理をしています: python-backports-ssl_match_hostname のパッケージ: python-setuptools-0.9.8-7.el7.noarch ---> パッケージ python-zope-component.noarch 1:4.1.0-5.el7 を インストール --> 依存性の処理をしています: python-zope-event のパッケージ: 1:python-zope-component-4.1.0-5.el7.noarch ---> パッケージ python-zope-interface.x86_64 0:4.0.5-4.el7 を インストール ---> パッケージ python2-configargparse.noarch 0:0.11.0-1.el7 を インストール ---> パッケージ python2-cryptography.x86_64 0:1.7.2-2.el7 を インストール --> 依存性の処理をしています: python-six >= 1.4.1 のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 --> 依存性の処理をしています: python-idna >= 2.0 のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 --> 依存性の処理をしています: python-cffi >= 1.4.1 のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 --> 依存性の処理をしています: python-ipaddress のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 --> 依存性の処理をしています: python-enum34 のパッケージ: python2-cryptography-1.7.2-2.el7.x86_64 ---> パッケージ python2-distro.noarch 0:1.2.0-3.el7 を インストール ---> パッケージ python2-future.noarch 0:0.16.0-15.20181019gitbee0f3b.el7 を インストール ---> パッケージ python2-josepy.noarch 0:1.2.0-1.el7 を インストール ---> パッケージ python2-mock.noarch 0:1.0.1-10.el7 を インストール ---> パッケージ python2-parsedatetime.noarch 0:2.4-5.el7 を インストール ---> パッケージ python2-pyasn1.noarch 0:0.1.9-7.el7 を インストール ---> パッケージ python2-pyrfc3339.noarch 0:1.0-2.el7 を インストール ---> パッケージ python2-six.noarch 0:1.9.0-0.el7 を インストール ---> パッケージ pytz.noarch 0:2016.10-2.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ apr.x86_64 0:1.4.8-5.el7 を インストール ---> パッケージ apr-util.x86_64 0:1.5.2-6.el7 を インストール ---> パッケージ audit-libs-python.x86_64 0:2.8.5-4.el7 を インストール ---> パッケージ checkpolicy.x86_64 0:2.5-8.el7 を インストール ---> パッケージ httpd-tools.x86_64 0:2.4.6-90.el7.centos を インストール ---> パッケージ libcgroup.x86_64 0:0.41-21.el7 を インストール ---> パッケージ libsemanage-python.x86_64 0:2.5-14.el7 を インストール ---> パッケージ mailcap.noarch 0:2.1.41-2.el7 を インストール ---> パッケージ python-IPy.noarch 0:0.75-6.el7 を インストール ---> パッケージ python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 を インストール --> 依存性の処理をしています: python-backports のパッケージ: python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch ---> パッケージ python-cffi.x86_64 0:1.6.0-5.el7 を インストール --> 依存性の処理をしています: python-pycparser のパッケージ: python-cffi-1.6.0-5.el7.x86_64 ---> パッケージ python-chardet.noarch 0:2.2.1-3.el7 を インストール ---> パッケージ python-enum34.noarch 0:1.0.4-1.el7 を インストール ---> パッケージ python-idna.noarch 0:2.4-1.el7 を インストール ---> パッケージ python-ipaddress.noarch 0:1.0.16-2.el7 を インストール ---> パッケージ python-six.noarch 0:1.9.0-2.el7 を インストール ---> パッケージ python-urllib3.noarch 0:1.10.2-7.el7 を インストール ---> パッケージ python-zope-event.noarch 0:4.0.3-2.el7 を インストール ---> パッケージ setools-libs.x86_64 0:3.3.8-4.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ python-backports.x86_64 0:1.0-8.el7 を インストール ---> パッケージ python-pycparser.noarch 0:2.14-1.el7 を インストール --> 依存性の処理をしています: python-ply のパッケージ: python-pycparser-2.14-1.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ python-ply.noarch 0:3.4-11.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: python2-certbot-apache noarch 1.0.0-1.el7 epel 107 k 依存性関連でのインストールをします: apr x86_64 1.4.8-5.el7 base 103 k apr-util x86_64 1.5.2-6.el7 base 92 k audit-libs-python x86_64 2.8.5-4.el7 base 76 k augeas-libs x86_64 1.4.0-9.el7 base 356 k certbot noarch 1.0.0-1.el7 epel 41 k checkpolicy x86_64 2.5-8.el7 base 295 k httpd x86_64 2.4.6-90.el7.centos base 2.7 M httpd-tools x86_64 2.4.6-90.el7.centos base 91 k libcgroup x86_64 0.41-21.el7 base 66 k libsemanage-python x86_64 2.5-14.el7 base 113 k mailcap noarch 2.1.41-2.el7 base 31 k mod_ssl x86_64 1:2.4.6-90.el7.centos base 112 k policycoreutils-python x86_64 2.5-33.el7 base 457 k pyOpenSSL x86_64 0.13.1-4.el7 base 135 k pytest noarch 2.7.0-2.el7 base 757 k python-IPy noarch 0.75-6.el7 base 32 k python-augeas noarch 0.5.0-2.el7 base 25 k python-backports x86_64 1.0-8.el7 base 5.8 k python-backports-ssl_match_hostname noarch 3.5.0.1-1.el7 base 13 k python-cffi x86_64 1.6.0-5.el7 base 218 k python-chardet noarch 2.2.1-3.el7 base 227 k python-enum34 noarch 1.0.4-1.el7 base 52 k python-idna noarch 2.4-1.el7 base 94 k python-ipaddress noarch 1.0.16-2.el7 base 34 k python-ndg_httpsclient noarch 0.3.2-1.el7 epel 43 k python-ply noarch 3.4-11.el7 base 123 k python-py noarch 1.4.32-1.el7 base 341 k python-pycparser noarch 2.14-1.el7 base 104 k python-requests noarch 2.6.0-8.el7_7 updates 95 k python-requests-toolbelt noarch 0.8.0-1.el7 epel 77 k python-setuptools noarch 0.9.8-7.el7 base 397 k python-six noarch 1.9.0-2.el7 base 29 k python-urllib3 noarch 1.10.2-7.el7 base 103 k python-zope-component noarch 1:4.1.0-5.el7 epel 228 k python-zope-event noarch 4.0.3-2.el7 epel 79 k python-zope-interface x86_64 4.0.5-4.el7 base 138 k python2-acme noarch 1.0.0-1.el7 epel 74 k python2-certbot noarch 1.0.0-1.el7 epel 358 k python2-configargparse noarch 0.11.0-1.el7 epel 30 k python2-cryptography x86_64 1.7.2-2.el7 base 502 k python2-distro noarch 1.2.0-3.el7 epel 29 k python2-future noarch 0.16.0-15.20181019gitbee0f3b.el7 epel 802 k python2-josepy noarch 1.2.0-1.el7 epel 89 k python2-mock noarch 1.0.1-10.el7 epel 92 k python2-parsedatetime noarch 2.4-5.el7 epel 78 k python2-pyasn1 noarch 0.1.9-7.el7 base 100 k python2-pyrfc3339 noarch 1.0-2.el7 epel 13 k python2-six noarch 1.9.0-0.el7 epel 2.9 k pytz noarch 2016.10-2.el7 base 46 k setools-libs x86_64 3.3.8-4.el7 base 620 k トランザクションの要約 ================================================================================ インストール 1 パッケージ (+50 個の依存関係のパッケージ) 総ダウンロード容量: 11 M インストール容量: 44 M Downloading packages: (1/51): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00 (2/51): audit-libs-python-2.8.5-4.el7.x86_64.rpm | 76 kB 00:00 (3/51): apr-1.4.8-5.el7.x86_64.rpm | 103 kB 00:00 (4/51): httpd-tools-2.4.6-90.el7.centos.x86_64.rpm | 91 kB 00:00 (5/51): certbot-1.0.0-1.el7.noarch.rpm | 41 kB 00:00 (6/51): libcgroup-0.41-21.el7.x86_64.rpm | 66 kB 00:00 (7/51): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00 (8/51): checkpolicy-2.5-8.el7.x86_64.rpm | 295 kB 00:00 (9/51): mod_ssl-2.4.6-90.el7.centos.x86_64.rpm | 112 kB 00:00 (10/51): pyOpenSSL-0.13.1-4.el7.x86_64.rpm | 135 kB 00:00 (11/51): pytest-2.7.0-2.el7.noarch.rpm | 757 kB 00:00 (12/51): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:00 (13/51): python-augeas-0.5.0-2.el7.noarch.rpm | 25 kB 00:00 (14/51): python-backports-1.0-8.el7.x86_64.rpm | 5.8 kB 00:00 (15/51): python-backports-ssl_match_hostname-3.5.0.1-1.el7 | 13 kB 00:00 (16/51): python-cffi-1.6.0-5.el7.x86_64.rpm | 218 kB 00:00 (17/51): python-chardet-2.2.1-3.el7.noarch.rpm | 227 kB 00:00 (18/51): python-enum34-1.0.4-1.el7.noarch.rpm | 52 kB 00:00 (19/51): python-idna-2.4-1.el7.noarch.rpm | 94 kB 00:00 (20/51): python-ipaddress-1.0.16-2.el7.noarch.rpm | 34 kB 00:00 (21/51): python-ndg_httpsclient-0.3.2-1.el7.noarch.rpm | 43 kB 00:00 (22/51): policycoreutils-python-2.5-33.el7.x86_64.rpm | 457 kB 00:01 (23/51): python-ply-3.4-11.el7.noarch.rpm | 123 kB 00:00 (24/51): python-pycparser-2.14-1.el7.noarch.rpm | 104 kB 00:00 (25/51): python-requests-2.6.0-8.el7_7.noarch.rpm | 95 kB 00:00 (26/51): libsemanage-python-2.5-14.el7.x86_64.rpm | 113 kB 00:01 (27/51): python-requests-toolbelt-0.8.0-1.el7.noarch.rpm | 77 kB 00:00 (28/51): python-setuptools-0.9.8-7.el7.noarch.rpm | 397 kB 00:00 (29/51): augeas-libs-1.4.0-9.el7.x86_64.rpm | 356 kB 00:02 (30/51): python-six-1.9.0-2.el7.noarch.rpm | 29 kB 00:00 (31/51): python-urllib3-1.10.2-7.el7.noarch.rpm | 103 kB 00:00 (32/51): python-zope-interface-4.0.5-4.el7.x86_64.rpm | 138 kB 00:00 (33/51): python-zope-component-4.1.0-5.el7.noarch.rpm | 228 kB 00:00 (34/51): python-zope-event-4.0.3-2.el7.noarch.rpm | 79 kB 00:00 (35/51): python-py-1.4.32-1.el7.noarch.rpm | 341 kB 00:01 (36/51): python2-certbot-apache-1.0.0-1.el7.noarch.rpm | 107 kB 00:00 (37/51): python2-certbot-1.0.0-1.el7.noarch.rpm | 358 kB 00:00 (38/51): python2-cryptography-1.7.2-2.el7.x86_64.rpm | 502 kB 00:00 (39/51): python2-acme-1.0.0-1.el7.noarch.rpm | 74 kB 00:00 (40/51): python2-future-0.16.0-15.20181019gitbee0f3b.el7.n | 802 kB 00:00 (41/51): python2-distro-1.2.0-3.el7.noarch.rpm | 29 kB 00:00 (42/51): python2-mock-1.0.1-10.el7.noarch.rpm | 92 kB 00:00 (43/51): python2-pyasn1-0.1.9-7.el7.noarch.rpm | 100 kB 00:00 (44/51): python2-josepy-1.2.0-1.el7.noarch.rpm | 89 kB 00:00 (45/51): python2-parsedatetime-2.4-5.el7.noarch.rpm | 78 kB 00:00 (46/51): python2-pyrfc3339-1.0-2.el7.noarch.rpm | 13 kB 00:00 (47/51): pytz-2016.10-2.el7.noarch.rpm | 46 kB 00:00 (48/51): python2-six-1.9.0-0.el7.noarch.rpm | 2.9 kB 00:00 (49/51): httpd-2.4.6-90.el7.centos.x86_64.rpm | 2.7 MB 00:04 (50/51): setools-libs-3.3.8-4.el7.x86_64.rpm | 620 kB 00:00 (51/51): python2-configargparse-0.11.0-1.el7.noarch.rpm | 30 kB 00:03 -------------------------------------------------------------------------------- 合計 1.6 MB/s | 11 MB 00:06 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : python2-pyasn1-0.1.9-7.el7.noarch 1/51 インストール中 : python-ipaddress-1.0.16-2.el7.noarch 2/51 インストール中 : pyOpenSSL-0.13.1-4.el7.x86_64 3/51 インストール中 : python-six-1.9.0-2.el7.noarch 4/51 インストール中 : apr-1.4.8-5.el7.x86_64 5/51 インストール中 : apr-util-1.5.2-6.el7.x86_64 6/51 インストール中 : python2-six-1.9.0-0.el7.noarch 7/51 インストール中 : python-zope-interface-4.0.5-4.el7.x86_64 8/51 インストール中 : python2-future-0.16.0-15.20181019gitbee0f3b 9/51 インストール中 : pytz-2016.10-2.el7.noarch 10/51 インストール中 : python2-pyrfc3339-1.0-2.el7.noarch 11/51 インストール中 : python2-parsedatetime-2.4-5.el7.noarch 12/51 インストール中 : httpd-tools-2.4.6-90.el7.centos.x86_64 13/51 インストール中 : libcgroup-0.41-21.el7.x86_64 14/51 インストール中 : python2-distro-1.2.0-3.el7.noarch 15/51 インストール中 : python-zope-event-4.0.3-2.el7.noarch 16/51 インストール中 : 1:python-zope-component-4.1.0-5.el7.noarch 17/51 インストール中 : python-chardet-2.2.1-3.el7.noarch 18/51 インストール中 : audit-libs-python-2.8.5-4.el7.x86_64 19/51 インストール中 : python-backports-1.0-8.el7.x86_64 20/51 インストール中 : python-backports-ssl_match_hostname-3.5.0.1 21/51 インストール中 : python-setuptools-0.9.8-7.el7.noarch 22/51 インストール中 : python-py-1.4.32-1.el7.noarch 23/51 インストール中 : pytest-2.7.0-2.el7.noarch 24/51 インストール中 : python-ndg_httpsclient-0.3.2-1.el7.noarch 25/51 インストール中 : python-urllib3-1.10.2-7.el7.noarch 26/51 インストール中 : python-requests-2.6.0-8.el7_7.noarch 27/51 インストール中 : python-requests-toolbelt-0.8.0-1.el7.noarch 28/51 インストール中 : libsemanage-python-2.5-14.el7.x86_64 29/51 インストール中 : python-ply-3.4-11.el7.noarch 30/51 インストール中 : python-pycparser-2.14-1.el7.noarch 31/51 インストール中 : python-cffi-1.6.0-5.el7.x86_64 32/51 インストール中 : python-idna-2.4-1.el7.noarch 33/51 インストール中 : setools-libs-3.3.8-4.el7.x86_64 34/51 インストール中 : python-IPy-0.75-6.el7.noarch 35/51 インストール中 : python2-configargparse-0.11.0-1.el7.noarch 36/51 インストール中 : checkpolicy-2.5-8.el7.x86_64 37/51 インストール中 : policycoreutils-python-2.5-33.el7.x86_64 38/51 インストール中 : python2-mock-1.0.1-10.el7.noarch 39/51 インストール中 : mailcap-2.1.41-2.el7.noarch 40/51 インストール中 : httpd-2.4.6-90.el7.centos.x86_64 41/51 インストール中 : 1:mod_ssl-2.4.6-90.el7.centos.x86_64 42/51 インストール中 : python-enum34-1.0.4-1.el7.noarch 43/51 インストール中 : python2-cryptography-1.7.2-2.el7.x86_64 44/51 インストール中 : python2-josepy-1.2.0-1.el7.noarch 45/51 インストール中 : python2-acme-1.0.0-1.el7.noarch 46/51 インストール中 : python2-certbot-1.0.0-1.el7.noarch 47/51 インストール中 : certbot-1.0.0-1.el7.noarch 48/51 インストール中 : augeas-libs-1.4.0-9.el7.x86_64 49/51 インストール中 : python-augeas-0.5.0-2.el7.noarch 50/51 インストール中 : python2-certbot-apache-1.0.0-1.el7.noarch 51/51 検証中 : python-augeas-0.5.0-2.el7.noarch 1/51 検証中 : 1:python-zope-component-4.1.0-5.el7.noarch 2/51 検証中 : python2-six-1.9.0-0.el7.noarch 3/51 検証中 : augeas-libs-1.4.0-9.el7.x86_64 4/51 検証中 : python-py-1.4.32-1.el7.noarch 5/51 検証中 : httpd-tools-2.4.6-90.el7.centos.x86_64 6/51 検証中 : python-requests-toolbelt-0.8.0-1.el7.noarch 7/51 検証中 : httpd-2.4.6-90.el7.centos.x86_64 8/51 検証中 : apr-1.4.8-5.el7.x86_64 9/51 検証中 : python-enum34-1.0.4-1.el7.noarch 10/51 検証中 : python2-josepy-1.2.0-1.el7.noarch 11/51 検証中 : mailcap-2.1.41-2.el7.noarch 12/51 検証中 : python-setuptools-0.9.8-7.el7.noarch 13/51 検証中 : python-backports-ssl_match_hostname-3.5.0.1 14/51 検証中 : python2-mock-1.0.1-10.el7.noarch 15/51 検証中 : python-urllib3-1.10.2-7.el7.noarch 16/51 検証中 : checkpolicy-2.5-8.el7.x86_64 17/51 検証中 : python2-pyrfc3339-1.0-2.el7.noarch 18/51 検証中 : python2-parsedatetime-2.4-5.el7.noarch 19/51 検証中 : python2-configargparse-0.11.0-1.el7.noarch 20/51 検証中 : pytz-2016.10-2.el7.noarch 21/51 検証中 : python-IPy-0.75-6.el7.noarch 22/51 検証中 : python-six-1.9.0-2.el7.noarch 23/51 検証中 : python-ndg_httpsclient-0.3.2-1.el7.noarch 24/51 検証中 : setools-libs-3.3.8-4.el7.x86_64 25/51 検証中 : python-idna-2.4-1.el7.noarch 26/51 検証中 : python-ply-3.4-11.el7.noarch 27/51 検証中 : policycoreutils-python-2.5-33.el7.x86_64 28/51 検証中 : libsemanage-python-2.5-14.el7.x86_64 29/51 検証中 : apr-util-1.5.2-6.el7.x86_64 30/51 検証中 : python-backports-1.0-8.el7.x86_64 31/51 検証中 : 1:mod_ssl-2.4.6-90.el7.centos.x86_64 32/51 検証中 : pytest-2.7.0-2.el7.noarch 33/51 検証中 : pyOpenSSL-0.13.1-4.el7.x86_64 34/51 検証中 : audit-libs-python-2.8.5-4.el7.x86_64 35/51 検証中 : python-cffi-1.6.0-5.el7.x86_64 36/51 検証中 : python2-acme-1.0.0-1.el7.noarch 37/51 検証中 : python-chardet-2.2.1-3.el7.noarch 38/51 検証中 : python-pycparser-2.14-1.el7.noarch 39/51 検証中 : python2-certbot-apache-1.0.0-1.el7.noarch 40/51 検証中 : certbot-1.0.0-1.el7.noarch 41/51 検証中 : python-requests-2.6.0-8.el7_7.noarch 42/51 検証中 : python-zope-event-4.0.3-2.el7.noarch 43/51 検証中 : python2-distro-1.2.0-3.el7.noarch 44/51 検証中 : python-ipaddress-1.0.16-2.el7.noarch 45/51 検証中 : python2-pyasn1-0.1.9-7.el7.noarch 46/51 検証中 : python2-future-0.16.0-15.20181019gitbee0f3b 47/51 検証中 : python-zope-interface-4.0.5-4.el7.x86_64 48/51 検証中 : python2-cryptography-1.7.2-2.el7.x86_64 49/51 検証中 : python2-certbot-1.0.0-1.el7.noarch 50/51 検証中 : libcgroup-0.41-21.el7.x86_64 51/51 インストール: python2-certbot-apache.noarch 0:1.0.0-1.el7 依存性関連をインストールしました: apr.x86_64 0:1.4.8-5.el7 apr-util.x86_64 0:1.5.2-6.el7 audit-libs-python.x86_64 0:2.8.5-4.el7 augeas-libs.x86_64 0:1.4.0-9.el7 certbot.noarch 0:1.0.0-1.el7 checkpolicy.x86_64 0:2.5-8.el7 httpd.x86_64 0:2.4.6-90.el7.centos httpd-tools.x86_64 0:2.4.6-90.el7.centos libcgroup.x86_64 0:0.41-21.el7 libsemanage-python.x86_64 0:2.5-14.el7 mailcap.noarch 0:2.1.41-2.el7 mod_ssl.x86_64 1:2.4.6-90.el7.centos policycoreutils-python.x86_64 0:2.5-33.el7 pyOpenSSL.x86_64 0:0.13.1-4.el7 pytest.noarch 0:2.7.0-2.el7 python-IPy.noarch 0:0.75-6.el7 python-augeas.noarch 0:0.5.0-2.el7 python-backports.x86_64 0:1.0-8.el7 python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 python-cffi.x86_64 0:1.6.0-5.el7 python-chardet.noarch 0:2.2.1-3.el7 python-enum34.noarch 0:1.0.4-1.el7 python-idna.noarch 0:2.4-1.el7 python-ipaddress.noarch 0:1.0.16-2.el7 python-ndg_httpsclient.noarch 0:0.3.2-1.el7 python-ply.noarch 0:3.4-11.el7 python-py.noarch 0:1.4.32-1.el7 python-pycparser.noarch 0:2.14-1.el7 python-requests.noarch 0:2.6.0-8.el7_7 python-requests-toolbelt.noarch 0:0.8.0-1.el7 python-setuptools.noarch 0:0.9.8-7.el7 python-six.noarch 0:1.9.0-2.el7 python-urllib3.noarch 0:1.10.2-7.el7 python-zope-component.noarch 1:4.1.0-5.el7 python-zope-event.noarch 0:4.0.3-2.el7 python-zope-interface.x86_64 0:4.0.5-4.el7 python2-acme.noarch 0:1.0.0-1.el7 python2-certbot.noarch 0:1.0.0-1.el7 python2-configargparse.noarch 0:0.11.0-1.el7 python2-cryptography.x86_64 0:1.7.2-2.el7 python2-distro.noarch 0:1.2.0-3.el7 python2-future.noarch 0:0.16.0-15.20181019gitbee0f3b.el7 python2-josepy.noarch 0:1.2.0-1.el7 python2-mock.noarch 0:1.0.1-10.el7 python2-parsedatetime.noarch 0:2.4-5.el7 python2-pyasn1.noarch 0:0.1.9-7.el7 python2-pyrfc3339.noarch 0:1.0-2.el7 python2-six.noarch 0:1.9.0-0.el7 pytz.noarch 0:2016.10-2.el7 setools-libs.x86_64 0:3.3.8-4.el7 完了しました!
[root@co ~]# cd
証明書の生成
Let's Encryptでは、certbot-autoというプログラムが初めから用意されていて、自動的に証明書の発行や更新を行ってくれます。
証明書にはドメイン名(mhserv.info)だけでなく、ホスト名(www.mhserv.infoなど)も複数登録可能なので、URLに使いたいものを登録しておきましょう。(ドメイン名は必須です)
尚、certbot-autoはWebサーバ機能を持っており、Apacheが動作していると競合してうまく動きません。動いている場合は一度止めておきます。
[root@co ~]# systemctl stop httpd
httpd を停止中: [ OK ]
[root@co ~]# usr/local/certbot/certbot-auto certonly --standalone /
--agree-tos /
-d ドメイン名 /
-d ホスト名 /
-m 管理者のメールアドレス
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mhserv.info
http-01 challenge for www.mhserv.info
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mhserv.info/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mhserv.info/privkey.pem
Your cert will expire on 2019-03-24. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-les
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
[root@co ~]# systemctl start httpd
httpd を開始中: [ OK ]
ちなみに、途中の"n"は「暗号化技術に関しての情報をメールで送って良いかい?」の問いに対してのものです。欲しい場合は"y"と回答してください。
証明書の自動更新
Let's Encryptで発行された証明書の有効期限は3ヶ月です。期限が切れる前に更新作業が必要です。
スクリプトはさくらのVPS(Cent OS6.8)でLet's Encryptを自動更新する方法で紹介されていたものを使用しています。
[root@co ~]# vi /etc/cron.monthly/certbot-renew.sh
#
# Copyright (c) 2016 Katsuya SAITO
# 参考:http://qiita.com/childsview/items/e4bff3b32b8304553980
#
# @(#) letsencrypt_cert_autoupdate_webroot.sh ver.0.1.0 2016.01.31
#
#######################################################
# CONFIGURE SECTION ---#
CMD_PATH=/usr/local/certbot
LOG_FILE=/var/log/certbot/renew.log
CN="ドメイン名"
MAIL_TO="root"
systemctl stop httpd
today=`date +%F-%a-%T`
echo "# Let's Encrypt Cert AutoUpdate Start: $today" >$LOG_FILE
/usr/local/certbot/certbot-auto renew --force-renew >>$LOG_FILE
today=`date +%F-%a-%T`
echo "# Let's Encrypt Cert AutoUpdate End: $today" >>$LOG_FILE
cat -v $LOG_FILE | mail -s "[Let's Encrypt Auto Update] Update Report for $CN" $MAIL_TO
systemctl start httpd
exit 0
[root@co ~]# chmod +x /etc/cron.monthly/certbot-renew.sh
MyDNSを利用している方へ
Let's Encryptには、1週間当たりの発行数制限があります。これはドメインごとに管理されているため、自分以外の方がmydns.jpドメインで証明書を作成した場合もカウントされていきます。
発行数制限に引っかかると、以下のような表示が出ます。
An unexpected error occurred: There were too many requests of a given type :: Error creating new order :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/
MyDNSワイルドカード対応証明書発行スクリプトの設置
今回はワイルドカードを使った証明書を有志の方が公開しているので、それを使って簡単に取得したいと思います。
[root@co ~]# wget 'https://github.com/disco-v8/DirectEdit/archive/master.zip' -O DirectEdit-master.zip
--2018-12-24 16:59:39-- https://github.com/disco-v8/DirectEdit/archive/master.zip github.com をDNSに問いあわせています... 192.30.255.112, 192.30.255.113 github.com|192.30.255.112|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 302 Found 場所: https://codeload.github.com/disco-v8/DirectEdit/zip/master [続く] --2018-12-24 16:59:40-- https://codeload.github.com/disco-v8/DirectEdit/zip/master codeload.github.com をDNSに問いあわせています... 192.30.255.121, 192.30.255.120 codeload.github.com|192.30.255.121|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 特定できません [application/zip] `DirectEdit-master.zip' に保存中 [ <=> ] 4,177 --.-K/s 時間 0.002s 2018-12-24 16:59:41 (2.37 MB/s) - `DirectEdit-master.zip' へ保存終了 [4177]
[root@co ~]# unzip DirectEdit-master.zip
Archive: DirectEdit-master.zip ea88d664c1b19f2cfa55d4b05f7571cf5e4a13d5 creating: DirectEdit-master/ inflating: DirectEdit-master/README inflating: DirectEdit-master/txtdelete.php inflating: DirectEdit-master/txtedit.conf inflating: DirectEdit-master/txtregist.php
[root@co ~]# rm -f DirectEdit-master.zip
[root@co ~]# mv DirectEdit-master /opt/
ワイルドカード対応証明書発行スクリプトの設定
設定ファイルにアカウントの情報を入力します。
[root@co ~]# cd /opt/DirectEdit-master
[root@co DirectEdit-master]# vi txtedit.conf
<?php $MYDNSJP_URL = 'https://www.mydns.jp/directedit.html'; $MYDNSJP_MASTERID = 'MyDNSのID'; $MYDNSJP_MASTERPWD = 'MyDNSのパスワード'; $MYDNSJP_DOMAIN = '取得したドメイン'; ?>
パーミッションの設定
スクリプトにパーミッションの設定を行います。
[root@co DirectEdit-master]# chown root:root ./
[root@co DirectEdit-master]# chmod 700 ./*.php
[root@co DirectEdit-master]# chmod 600 ./*.conf
証明書の取得
設定が終わったら、実際に証明書を発行してもらいましょう。
[root@co DirectEdit-master]# /usr/local/certbot/certbot-auto certonly --manual \
--preferred-challenges=dns \
--manual-auth-hook /opt/DirectEdit-master/txtregist.php \
--manual-cleanup-hook /opt/DirectEdit-master/txtdelete.php \
-d 取得したドメイン -d *.取得したドメイン \
--server https://acme-v02.api.letsencrypt.org/directory \
--agree-tos -m 管理者のメールアドレス \
--manual-public-ip-logging-ok
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator manual, Installer None Obtaining a new certificate Performing the following challenges: dns-01 challenge for mhserv.mydns.jp dns-01 challenge for mhserv.mydns.jp Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/mhserv.mydns.jp/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/mhserv.mydns.jp/privkey.pem Your cert will expire on 2019-03-24. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
参考にしたサイト様
Qiita - さくらのVPS(Cent OS6.8)でLet's Encryptを自動更新する方法
Qiita - 無料でHTTPS化できる「Let's Encrypt」をやってみた
Qiita - 突然GitHubとhttps通信できなくなったときの解決メモ
CPoint LAB. news - Let’s Encrypt + MyDNS でワイルドカードSSL証明書を自動更新する方法
今回新しく登場したコマンド
[広告]

トップページ
Rocky Linux 8
CentOS 7
○準備
○VMware Player
○Hyper-V(Win Proのみ)
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ブログシステム
○オンラインストレージ
○その他
Scientific Linux 6
CentOS 5
ブログ
[広告]