はじめに
macOS Server 5.7からWebサービスがなくなってしまった。お手軽に発行する為には、Web認証からDNS認証へシフトすることだろう。今回は、macOS Server 5.7をインストールしたマシンのセットアップ方法を解説します。
事前準備
Let's Encryptのオフィシャルサイトの『Getting Started』を読むと、certbotというACMEクライアントを使うことを勧めている。
certbotは、homebrewで提供されているので、homebrewのインストール経験があれば、簡単にインストールできる。ただ、certbotをインストールすると依存系ファイルもインストールする。それだとちょっと気に入らないので、今回は、クライアントマシンにインストールして、証明書をクライアントマシンで作成し、サーバにアップロードするという手法をとる。
大まかな流れ
- クライアントマシンにcertbotのインストール
- certbotを使って証明書をクライアントマシンで作成
- できた証明書をサーバマシンにアップロード
- Server.appを使って証明書をセットアップ
手順
クライアントマシンにcertbotのインストール
https://certbot.eff.org/#osx-apache の手順に従い、certbotをインストールする。
$ brew install certbot
certbotを使って証明書をクライアントマシンで作成
certbotの対話形式のマニュアル発行だと次のコマンドを使う。メールアドレス、アグリメント、ドメイン名など聞かれる。また、サーバ上に出力されたWebページを作成する。(英語を良く読んで手順通りやれば、問題なし。)
$ certbot certonly --manual --preferred-challenges dns
または、
$ sudo certbot certonly --manual --preferred-challenges dns
出力結果
HOSTNAME IN TXT VALUE
_acme-challenge.hoge.example.com IN TXT ...
できた証明書をサーバマシンにアップロード
証明書ができると、/etc/letsencrypt/live/ドメイン名/に4種類の証明書が作成されて、その中のprivkey.pemとfullchain.pemをサーバにコピーする。ちなみにliveディレクトリに入っているのはリンクで、実体は、/etc/letsencrypt/archive/ドメイン名/に入っている。
Server.appを使って証明書をセットアップ
Server.appのサーバの証明書で、『証明書識別情報を読み込む...』選ぶ。
『秘密鍵が含まれるファイルをここにドラッグしてください。』にprivkey.pemをドラッグし、『公開証明書が含まれるファイルをここにドラッグしてください』にfullcain.pemをドラッグする。
できたら、『サービスのセキュリティ保護に使用:』で証明書を選択してください。