いらっしゃいませ
ここでは、無料で使える認証局、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サーバ等はこの時点では必要ありません。
certbotのダウンロード
[root@sl ~]# cd /usr/local/
[root@sl local]# git clone https://github.com/certbot/certbot
Initialized empty Git repository in /usr/local/certbot/.git/ remote: Enumerating objects: 30, done. remote: Counting objects: 100% (30/30), done. remote: Compressing objects: 100% (28/28), done. remote: Total 61424 (delta 7), reused 4 (delta 2), pack-reused 61394 Receiving objects: 100% (61424/61424), 20.11 MiB | 1.69 MiB/s, done. Resolving deltas: 100% (44620/44620), done.
[root@sl ~]# cd
certbotのインストール
certbotの実行に必要なプログラムを大量にインストールしますが、いくつかはEPELレポジトリにあるため、一時的にEPELレポジトリを有効化します。
[root@sl ~]# sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/epel.repo
[root@sl ~]# /usr/local/certbot/certbot-auto -n
Bootstrapping dependencies for RedHat-based OSes that will use Python3... (you can skip this with --no-bootst
rap)
yum is /usr/bin/yum
yum is hashed (/usr/bin/yum)
読み込んだプラグイン:fastestmirror, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
* epel-debuginfo: ftp.riken.jp
* epel-source: ftp.riken.jp
* sl: ftp.riken.jp
* sl-security: ftp.riken.jp
* sl6x: ftp.riken.jp
* sl6x-security: ftp.riken.jp
パッケージ gcc-4.4.7-23.el6.x86_64 はインストール済みか最新バージョンです
パッケージ openssl-1.0.1e-57.el6.x86_64 はインストール済みか最新バージョンです
パッケージ redhat-rpm-config-9.0.3-51.sl6.noarch はインストール済みか最新バージ ョンです
パッケージ ca-certificates-2018.2.22-65.1.el6.noarch はインストール済みか最新バ ージョンです
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package augeas-libs.x86_64 0:1.0.0-10.el6 will be インストール
---> Package libffi-devel.x86_64 0:3.0.5-3.2.el6 will be インストール
---> Package openssl-devel.x86_64 0:1.0.1e-57.el6 will be インストール
--> 依存性の処理をしています: zlib-devel のパッケージ: openssl-devel-1.0.1e-57.el6.x86_64
--> 依存性の処理をしています: krb5-devel のパッケージ: openssl-devel-1.0.1e-57.el6.x86_64
---> Package python34.x86_64 0:3.4.8-1.el6 will be インストール
--> 依存性の処理をしています: python34-libs(x86-64) = 3.4.8-1.el6 のパッケージ: python34-3.4.8-1.el6.x86_64
--> 依存性の処理をしています: libpython3.4m.so.1.0()(64bit) のパッケージ: python34-3.4.8-1.el6.x86_64
---> Package python34-devel.x86_64 0:3.4.8-1.el6 will be インストール
--> 依存性の処理をしています: python3-rpm-macros のパッケージ: python34-devel-3.4.8-1.el6.x86_64
--> 依存性の処理をしています: python-rpm-macros のパッケージ: python34-devel-3.4.8-1.el6.x86_64
---> Package python34-tools.x86_64 0:3.4.8-1.el6 will be インストール
--> 依存性の処理をしています: python34-tkinter = 3.4.8-1.el6 のパッケージ: python34-tools-3.4.8-1.el6.x86_64
--> トランザクションの確認を実行しています。
---> Package krb5-devel.x86_64 0:1.10.3-65.el6 will be インストール
--> 依存性の処理をしています: libkadm5(x86-64) = 1.10.3-65.el6 のパッケージ: krb5-devel-1.10.3-65.el6.x86_64
--> 依存性の処理をしています: libselinux-devel のパッケージ: krb5-devel-1.10.3-65.el6.x86_64
--> 依存性の処理をしています: libcom_err-devel のパッケージ: krb5-devel-1.10.3-65.el6.x86_64
--> 依存性の処理をしています: keyutils-libs-devel のパッケージ: krb5-devel-1.10.3-65.el6.x86_64
---> Package python-rpm-macros.noarch 0:3-13.el6 will be インストール
--> 依存性の処理をしています: python-srpm-macros のパッケージ: python-rpm-macros-3-13.el6.noarch
---> Package python3-rpm-macros.noarch 0:3-13.el6 will be インストール
---> Package python34-libs.x86_64 0:3.4.8-1.el6 will be インストール
---> Package python34-tkinter.x86_64 0:3.4.8-1.el6 will be インストール
--> 依存性の処理をしています: libtk8.5.so()(64bit) のパッケージ: python34-tkinter-3.4.8-1.el6.x86_64
--> 依存性の処理をしています: libtcl8.5.so()(64bit) のパッケージ: python34-tkinter-3.4.8-1.el6.x86_64
---> Package zlib-devel.x86_64 0:1.2.3-29.el6 will be インストール
--> トランザクションの確認を実行しています。
---> Package keyutils-libs-devel.x86_64 0:1.4-5.el6 will be インストール
---> Package libcom_err-devel.x86_64 0:1.41.12-24.el6 will be インストール
---> Package libkadm5.x86_64 0:1.10.3-65.el6 will be インストール
---> Package libselinux-devel.x86_64 0:2.0.94-7.el6 will be インストール
--> 依存性の処理をしています: libsepol-devel >= 2.0.32-1 のパッケージ: libselinux-devel-2.0.94-7.el6.x86_64
--> 依存性の処理をしています: pkgconfig(libsepol) のパッケージ: libselinux-devel-2.0.94-7.el6.x86_64
---> Package python-srpm-macros.noarch 0:3-13.el6 will be インストール
---> Package tcl.x86_64 1:8.5.7-6.el6 will be インストール
---> Package tk.x86_64 1:8.5.7-5.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 sl 313 k
libffi-devel x86_64 3.0.5-3.2.el6 sl 17 k
openssl-devel x86_64 1.0.1e-57.el6 sl 1.2 M
python34 x86_64 3.4.8-1.el6 epel 50 k
python34-devel x86_64 3.4.8-1.el6 epel 186 k
python34-tools x86_64 3.4.8-1.el6 epel 426 k
依存性関連でのインストールをします。:
keyutils-libs-devel x86_64 1.4-5.el6 sl 28 k
krb5-devel x86_64 1.10.3-65.el6 sl 503 k
libcom_err-devel x86_64 1.41.12-24.el6 sl 32 k
libkadm5 x86_64 1.10.3-65.el6 sl 142 k
libselinux-devel x86_64 2.0.94-7.el6 sl 136 k
libsepol-devel x86_64 2.0.41-4.el6 sl 63 k
python-rpm-macros noarch 3-13.el6 epel 5.6 k
python-srpm-macros noarch 3-13.el6 epel 5.6 k
python3-rpm-macros noarch 3-13.el6 epel 5.1 k
python34-libs x86_64 3.4.8-1.el6 epel 8.4 M
python34-tkinter x86_64 3.4.8-1.el6 epel 336 k
tcl x86_64 1:8.5.7-6.el6 sl 1.9 M
tk x86_64 1:8.5.7-5.el6 sl 1.4 M
zlib-devel x86_64 1.2.3-29.el6 sl 43 k
トランザクションの要約
================================================================================
インストール 20 パッケージ
総ダウンロード容量: 15 M
インストール済み容量: 46 M
パッケージをダウンロードしています:
(1/20): augeas-libs-1.0.0-10.el6.x86_64.rpm | 313 kB 00:00
(2/20): keyutils-libs-devel-1.4-5.el6.x86_64.rpm | 28 kB 00:00
(3/20): krb5-devel-1.10.3-65.el6.x86_64.rpm | 503 kB 00:00
(4/20): libcom_err-devel-1.41.12-24.el6.x86_64.rpm | 32 kB 00:00
(5/20): libffi-devel-3.0.5-3.2.el6.x86_64.rpm | 17 kB 00:00
(6/20): libkadm5-1.10.3-65.el6.x86_64.rpm | 142 kB 00:00
(7/20): libselinux-devel-2.0.94-7.el6.x86_64.rpm | 136 kB 00:00
(8/20): libsepol-devel-2.0.41-4.el6.x86_64.rpm | 63 kB 00:00
(9/20): openssl-devel-1.0.1e-57.el6.x86_64.rpm | 1.2 MB 00:00
(10/20): python-rpm-macros-3-13.el6.noarch.rpm | 5.6 kB 00:00
(11/20): python-srpm-macros-3-13.el6.noarch.rpm | 5.6 kB 00:00
(12/20): python3-rpm-macros-3-13.el6.noarch.rpm | 5.1 kB 00:00
(13/20): python34-3.4.8-1.el6.x86_64.rpm | 50 kB 00:00
(14/20): python34-devel-3.4.8-1.el6.x86_64.rpm | 186 kB 00:00
(15/20): python34-libs-3.4.8-1.el6.x86_64.rpm | 8.4 MB 00:02
(16/20): python34-tkinter-3.4.8-1.el6.x86_64.rpm | 336 kB 00:00
(17/20): python34-tools-3.4.8-1.el6.x86_64.rpm | 426 kB 00:00
(18/20): tcl-8.5.7-6.el6.x86_64.rpm | 1.9 MB 00:00
(19/20): tk-8.5.7-5.el6.x86_64.rpm | 1.4 MB 00:00
(20/20): zlib-devel-1.2.3-29.el6.x86_64.rpm | 43 kB 00:00
--------------------------------------------------------------------------------
合計 2.9 MB/s | 15 MB 00:05
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
警告: RPMDB は yum 以外で変更されました。
インストールしています : python34-libs-3.4.8-1.el6.x86_64 1/20
インストールしています : python34-3.4.8-1.el6.x86_64 2/20
インストールしています : 1:tcl-8.5.7-6.el6.x86_64 3/20
インストールしています : 1:tk-8.5.7-5.el6.x86_64 4/20
インストールしています : python34-tkinter-3.4.8-1.el6.x86_64 5/20
インストールしています : python3-rpm-macros-3-13.el6.noarch 6/20
インストールしています : zlib-devel-1.2.3-29.el6.x86_64 7/20
インストールしています : libkadm5-1.10.3-65.el6.x86_64 8/20
インストールしています : libsepol-devel-2.0.41-4.el6.x86_64 9/20
インストールしています : libselinux-devel-2.0.94-7.el6.x86_64 10/20
インストールしています : python-srpm-macros-3-13.el6.noarch 11/20
インストールしています : python-rpm-macros-3-13.el6.noarch 12/20
インストールしています : keyutils-libs-devel-1.4-5.el6.x86_64 13/20
インストールしています : libcom_err-devel-1.41.12-24.el6.x86_64 14/20
インストールしています : krb5-devel-1.10.3-65.el6.x86_64 15/20
インストールしています : openssl-devel-1.0.1e-57.el6.x86_64 16/20
インストールしています : python34-devel-3.4.8-1.el6.x86_64 17/20
インストールしています : python34-tools-3.4.8-1.el6.x86_64 18/20
インストールしています : augeas-libs-1.0.0-10.el6.x86_64 19/20
インストールしています : libffi-devel-3.0.5-3.2.el6.x86_64 20/20
Verifying : libcom_err-devel-1.41.12-24.el6.x86_64 1/20
Verifying : keyutils-libs-devel-1.4-5.el6.x86_64 2/20
Verifying : python-srpm-macros-3-13.el6.noarch 3/20
Verifying : libsepol-devel-2.0.41-4.el6.x86_64 4/20
Verifying : openssl-devel-1.0.1e-57.el6.x86_64 5/20
Verifying : python-rpm-macros-3-13.el6.noarch 6/20
Verifying : python34-tkinter-3.4.8-1.el6.x86_64 7/20
Verifying : python34-3.4.8-1.el6.x86_64 8/20
Verifying : krb5-devel-1.10.3-65.el6.x86_64 9/20
Verifying : libffi-devel-3.0.5-3.2.el6.x86_64 10/20
Verifying : libkadm5-1.10.3-65.el6.x86_64 11/20
Verifying : 1:tcl-8.5.7-6.el6.x86_64 12/20
Verifying : augeas-libs-1.0.0-10.el6.x86_64 13/20
Verifying : 1:tk-8.5.7-5.el6.x86_64 14/20
Verifying : zlib-devel-1.2.3-29.el6.x86_64 15/20
Verifying : python34-devel-3.4.8-1.el6.x86_64 16/20
Verifying : python34-libs-3.4.8-1.el6.x86_64 17/20
Verifying : python34-tools-3.4.8-1.el6.x86_64 18/20
Verifying : libselinux-devel-2.0.94-7.el6.x86_64 19/20
Verifying : python3-rpm-macros-3-13.el6.noarch 20/20
インストール:
augeas-libs.x86_64 0:1.0.0-10.el6 libffi-devel.x86_64 0:3.0.5-3.2.el6
openssl-devel.x86_64 0:1.0.1e-57.el6 python34.x86_64 0:3.4.8-1.el6
python34-devel.x86_64 0:3.4.8-1.el6 python34-tools.x86_64 0:3.4.8-1.el6
依存性関連をインストールしました:
keyutils-libs-devel.x86_64 0:1.4-5.el6 krb5-devel.x86_64 0:1.10.3-65.el6
libcom_err-devel.x86_64 0:1.41.12-24.el6 libkadm5.x86_64 0:1.10.3-65.el6
libselinux-devel.x86_64 0:2.0.94-7.el6 libsepol-devel.x86_64 0:2.0.41-4.el6
python-rpm-macros.noarch 0:3-13.el6 python-srpm-macros.noarch 0:3-13.el6
python3-rpm-macros.noarch 0:3-13.el6 python34-libs.x86_64 0:3.4.8-1.el6
python34-tkinter.x86_64 0:3.4.8-1.el6 tcl.x86_64 1:8.5.7-6.el6
tk.x86_64 1:8.5.7-5.el6 zlib-devel.x86_64 0:1.2.3-29.el6
完了しました!
Creating virtual environment...
Installing Python packages...
Installation succeeded.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Missing command line flags. For non-interactive execution, you will need to specify a plugin on the command
line. Run with '--help plugins' to see a list of options, and see https://eff.org/letsencrypt-plugins for
more detail on what the plugins do and how to use them.
[root@sl ~]# sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/epel.repo
証明書の生成
Let's Encryptでは、certbot-autoというプログラムが初めから用意されていて、自動的に証明書の発行や更新を行ってくれます。
尚、certbot-autoはWebサーバ機能を持っており、Apacheが動作していると競合してうまく動きません。一度止めておきます。
[root@sl ~]# /etc/rc.d/init.d/httpd stop
httpd を停止中: [ OK ]
[root@sl ~]# 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.mydns.jp
http-01 challenge for www.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-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@sl ~]# /etc/rc.d/init.d/httpd start
httpd を開始中: [ OK ]
ちなみに、途中の"n"は「暗号化技術に関しての情報をメールで送って良いかい?」の問いに対してのものです。欲しい場合は"y"と回答してください。
証明書の自動更新
Let's Encryptで発行された証明書の有効期限は3ヶ月です。期限が切れる前に更新作業が必要です。
スクリプトはさくらのVPS(Cent OS6.8)でLet's Encryptを自動更新する方法で紹介されていたものを使用しています。
[root@sl ~]# 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"
/etc/rc.d/init.d/httpd stop
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
/etc/rc.d/init.d/httpd start
exit 0
gitを実行すると以下のようなエラーが表示された場合
Initialized empty Git repository in /usr/local/certbot/.git/ error: while accessing https://github.com/certbot/certbot/info/refs fatal: HTTP request failed
[root@co ~]# yum update -y nss curl libcurl
Loaded plugins: downloadonly, fastestmirror
Setting up Update Process
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
base | 3.7 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package curl.x86_64 0:7.19.7-40.el6_6.4 will be updated
---> Package curl.x86_64 0:7.19.7-53.el6_9 will be an update
---> Package libcurl.x86_64 0:7.19.7-40.el6_6.4 will be updated
---> Package libcurl.x86_64 0:7.19.7-53.el6_9 will be an update
---> Package nss.x86_64 0:3.18.0-5.3.el6_6 will be updated
--> Processing Dependency: nss = 3.18.0-5.3.el6_6 for package: nss-sysinit-3.18.0-5.3.el6_6.x86_64
--> Processing Dependency: nss(x86-64) = 3.18.0-5.3.el6_6 for package: nss-tools-3.18.0-5.3.el6_6.x86_64
---> Package nss.x86_64 0:3.36.0-9.el6_10 will be an update
--> Processing Dependency: nss-util >= 3.36.0 for package: nss-3.36.0-9.el6_10.x86_64
--> Processing Dependency: nspr >= 4.19.0 for package: nss-3.36.0-9.el6_10.x86_64
--> Processing Dependency: libnssutil3.so(NSSUTIL_3.33)(64bit) for package: nss-3.36.0-9.el6_10.x86_64
--> Processing Dependency: libnssutil3.so(NSSUTIL_3.31)(64bit) for package: nss-3.36.0-9.el6_10.x86_64
--> Processing Dependency: libnssutil3.so(NSSUTIL_3.24)(64bit) for package: nss-3.36.0-9.el6_10.x86_64
--> Processing Dependency: libnssutil3.so(NSSUTIL_3.21)(64bit) for package: nss-3.36.0-9.el6_10.x86_64
--> Running transaction check
---> Package nspr.x86_64 0:4.10.8-1.el6_6 will be updated
---> Package nspr.x86_64 0:4.19.0-1.el6 will be an update
---> Package nss-sysinit.x86_64 0:3.18.0-5.3.el6_6 will be updated
---> Package nss-sysinit.x86_64 0:3.36.0-9.el6_10 will be an update
---> Package nss-tools.x86_64 0:3.18.0-5.3.el6_6 will be updated
---> Package nss-tools.x86_64 0:3.36.0-9.el6_10 will be an update
---> Package nss-util.x86_64 0:3.18.0-1.el6_6 will be updated
---> Package nss-util.x86_64 0:3.36.0-1.el6 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
curl x86_64 7.19.7-53.el6_9 base 197 k
libcurl x86_64 7.19.7-53.el6_9 base 169 k
nss x86_64 3.36.0-9.el6_10 updates 865 k
Updating for dependencies:
nspr x86_64 4.19.0-1.el6 base 114 k
nss-sysinit x86_64 3.36.0-9.el6_10 updates 53 k
nss-tools x86_64 3.36.0-9.el6_10 updates 460 k
nss-util x86_64 3.36.0-1.el6 base 72 k
Transaction Summary
================================================================================
Upgrade 7 Package(s)
Total download size: 1.9 M
Downloading Packages:
(1/7): curl-7.19.7-53.el6_9.x86_64.rpm | 197 kB 00:00
(2/7): libcurl-7.19.7-53.el6_9.x86_64.rpm | 169 kB 00:00
(3/7): nspr-4.19.0-1.el6.x86_64.rpm | 114 kB 00:00
(4/7): nss-3.36.0-9.el6_10.x86_64.rpm | 865 kB 00:00
(5/7): nss-sysinit-3.36.0-9.el6_10.x86_64.rpm | 53 kB 00:00
(6/7): nss-tools-3.36.0-9.el6_10.x86_64.rpm | 460 kB 00:00
(7/7): nss-util-3.36.0-1.el6.x86_64.rpm | 72 kB 00:00
--------------------------------------------------------------------------------
Total 2.0 MB/s | 1.9 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : nspr-4.19.0-1.el6.x86_64 1/14
Updating : nss-util-3.36.0-1.el6.x86_64 2/14
Updating : nss-3.36.0-9.el6_10.x86_64 3/14
Updating : nss-sysinit-3.36.0-9.el6_10.x86_64 4/14
Updating : libcurl-7.19.7-53.el6_9.x86_64 5/14
Updating : curl-7.19.7-53.el6_9.x86_64 6/14
Updating : nss-tools-3.36.0-9.el6_10.x86_64 7/14
Cleanup : curl-7.19.7-40.el6_6.4.x86_64 8/14
Cleanup : libcurl-7.19.7-40.el6_6.4.x86_64 9/14
Cleanup : nss-tools-3.18.0-5.3.el6_6.x86_64 10/14
Cleanup : nss-3.18.0-5.3.el6_6.x86_64 11/14
Cleanup : nss-sysinit-3.18.0-5.3.el6_6.x86_64 12/14
Cleanup : nss-util-3.18.0-1.el6_6.x86_64 13/14
Cleanup : nspr-4.10.8-1.el6_6.x86_64 14/14
Verifying : nss-sysinit-3.36.0-9.el6_10.x86_64 1/14
Verifying : nspr-4.19.0-1.el6.x86_64 2/14
Verifying : nss-util-3.36.0-1.el6.x86_64 3/14
Verifying : nss-tools-3.36.0-9.el6_10.x86_64 4/14
Verifying : nss-3.36.0-9.el6_10.x86_64 5/14
Verifying : curl-7.19.7-53.el6_9.x86_64 6/14
Verifying : libcurl-7.19.7-53.el6_9.x86_64 7/14
Verifying : nss-3.18.0-5.3.el6_6.x86_64 8/14
Verifying : nss-util-3.18.0-1.el6_6.x86_64 9/14
Verifying : nss-sysinit-3.18.0-5.3.el6_6.x86_64 10/14
Verifying : libcurl-7.19.7-40.el6_6.4.x86_64 11/14
Verifying : curl-7.19.7-40.el6_6.4.x86_64 12/14
Verifying : nss-tools-3.18.0-5.3.el6_6.x86_64 13/14
Verifying : nspr-4.10.8-1.el6_6.x86_64 14/14
Updated:
curl.x86_64 0:7.19.7-53.el6_9 libcurl.x86_64 0:7.19.7-53.el6_9
nss.x86_64 0:3.36.0-9.el6_10
Dependency Updated:
nspr.x86_64 0:4.19.0-1.el6 nss-sysinit.x86_64 0:3.36.0-9.el6_10
nss-tools.x86_64 0:3.36.0-9.el6_10 nss-util.x86_64 0:3.36.0-1.el6
Complete!
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@sl ~]# 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@sl ~]# 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@sl ~]# rm -f DirectEdit-master.zip
[root@sl ~]# mv DirectEdit-master /opt/
ワイルドカード対応証明書発行スクリプトの設定
設定ファイルにアカウントの情報を入力します。
[root@sl ~]# cd /opt/DirectEdit-master
[root@sl DirectEdit-master]# vi txtedit.conf
<?php $MYDNSJP_URL = 'https://www.mydns.jp/directedit.html'; $MYDNSJP_MASTERID = 'MyDNSのID'; $MYDNSJP_MASTERPWD = 'MyDNSのパスワード'; $MYDNSJP_DOMAIN = '取得したドメイン'; ?>
パーミッションの設定
スクリプトにパーミッションの設定を行います。
[root@sl DirectEdit-master]# chown root:root ./
[root@sl DirectEdit-master]# chmod 700 ./*.php
[root@sl DirectEdit-master]# chmod 600 ./*.conf
証明書の取得
設定が終わったら、実際に証明書を発行してもらいましょう。
[root@sl 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 mhserv.mydns.jp -d *.mhserv.mydns.jp \
--server https://acme-v02.api.letsencrypt.org/directory \
--agree-tos -m webmaster@mhserv.mydns.jp \
--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証明書を自動更新する方法
今回新しく登場したコマンド
[広告]
トップページ
Scientific Linux 6
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○NTPサーバ
○Dynamic DNS
○DNSサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○ブログシステム
○その他