Encryptが発行する無料のTLSサーバ証明書を、簡単なコマンド操作で取得・更新できる、革命的なオープンソースソフト。SSL/TLSサーバ証明書とはちまたで言うSSLは今は技術的に発展したTLSのこと。これに対応したサイトのURLがhttps://で始まるので、HTTPSとも呼ばれる。以降TLSと表記する。Encryptはブラウザに組み込まれている認証局であり、TLSサーバ証明書(ドメイン認証)を簡単なcertbotコマンドでいつでもすぐに無料で取得できるようになった。ドメインサーバの所有者」を確認でき、第三者の成りすましを防止できるため。cloneコマンドとスクリプト実行)certbotコマンドでTLSサーバ証明書取得Webサーバに証明書を設定ここでは、certbotコマンドでは証明書の取得だけを行うことにし、httpdへの設定は手動で行う流れにする。下記分類のstandaloneプラグインによる方法。certbotのプラグイン証明書取得とサーバ設定の方式は色々あり、これをプラグインと称して、コマンドオプションで指定する。別の専用Webサーバを一時起動して認証する方法のため、本来のWebサーバは一時停止することになる。どちらか本来のWebサーバで認証する方法。Webサーバへの設定もする。ウェブ・ルートディレクトリ(例/var/www/html)にできる一時ファイルで認証する方法。Webサーバはなんでもいい。対話的、その他、DNSのTXTレコードによる方法。本来のWebサーバを一時停止できないシステムなら、standaloneプラグイン以外にする。これ以外にサードパーティのプラグイン(別途インストールが必要)もある。certbotコマンドのインストール環境Linux各種のパッケージ管理システムからもcertbotコマンドをインストールできるが、ここでは、GitHubの公式リポジトリhttps://github.com/certbot/certbotから取得する方法による。このリポジトリにcertbot-autoスクリプトが含まれており、これはコマンド同様の機能のため、当サイトでcertbotコマンドと言えばcertbot-autoスクリプトのこと。httpd2.4で例示するが、certbot-auto一発で、Linuxごとに依存パーケージがインストールされるので、他のLinuxでも同様らしい。Gitのインストールcertbotの入手をgitコマンドでするので、gitパッケージをなければインストールする。cloneして、certbot-autoスクリプトで、依存パッケージがインストールされる。基本的にcertbotはroot権限で操作する。スクリプトへのパスが面倒なので、環境変数PATHに含まれる/usr/local/sbin/にリンクを置いて、コマンド化する。名前はそのままcertbot-autoとするが、certbotコマンドの環境は読みかえること。Encrypt側サーバからドメイン運用側サーバに「対象のドメイン名によるアクセス」があるので、事前にDNSサーバの稼働が必要。DNS設定直後は外部に情報が未達の可能性があるため、ドメインサーバ外のクライアントから名前解決ができるか、予めdigコマンドなどで確認しておく。IPアドレスここではDNSプラグインのTXTレコードによる方法ではないので、単にドメインの名前解決できればいい。httpdの場合で例示する。httpdパッケージをインストールする。(CentOS)mod_sslモジュールTLSではmod_sslモジュールが必要だが、certbot-autoコマンドとともに自動インストールされる。SSLv3.0」と呼ばれる脆弱性があるので、TLSのみ有効にしておく。httpdの設定ファイル/etc/httpd/conf/httpd.confの最終行にでも下記を追加するだけ。-SSLv3その他、ドメインごとの設定は後で。ファイアウォールにhttps追加certbotで証明書取得する際、httpsでの通信があるので、firewall-cmdコマンドで予めファイアウォールにhttpsを許可しておく。httpで80ポート利用のプロトコルに変更できるが、証明書取得したら結局https使う。本来のWebサーバは一時停止しておくstandaloneプラグインの方法のため、証明書取得過程でポートは80(http)や443(https)と競合するので、(動いていれば)いったんWebサーバ(httpd)を停止する。httpd'を付ける方法でもよい。renewコマンドでも、同様の処理が自動でなされるから便利。certonlyコマンドで証明書取得(standaloneプラグイン)本来のWebサーバを停止し、certbotに含まれるstandaloneサーバ(一時的なWebサーバ)で認証し、証明書の取得だけを行う方法。Webサーバへの証明書の指定は別途手動で行う。httpd'詳しく...証明書のディレクトリcertbotで取得した証明書は、/etc/letsencrypt/archive/以下に保存され、その最新版へのリンクが/etc/letsencrypt/live/以下に置かれる。Webサーバへの証明書設定はリンクの方で指定すればいい。Encryptサーバ側で回数制限がある。1ドメインで、1週間で5000サブドメインも可能。新規取得できる証明書の数は、業者から買った登録ドメインごとに、1週間で50まで一つの証明書に含められるドメイン名は100まで内容が同じ証明書(名前順番無視)の重複取得は、週に5回までその他制限詳細。httpd.confで証明書を指定/etc/httpd/conf/httpd.confか/etc/httpd/conf.d/以下の設定ファイルを作って、/etc/letsencrypt/live/以下の証明書(リンク)などを指定する。証明書やコンテンツの格納が済んだら、httpdサーバを起動。ブラウザでも動作確認。証明書の有効期限は90日。renewを実行すれば更新される。--expandによる再取得へ。初学者向けにステキなオープンソースソフト(OSS)を解説。環境はLinuxなどすべてOSS。