投稿

3月, 2022の投稿を表示しています

LEGOとLet's Encryptで証明書を利用した手順のメモ

無料で提供されている認証局のLet's Encryptから、Webサーバ用のSSL証明書を取得・設定する。Let's EncryptにはCertbotという公式のクライアントがあるが、今回はOSSで公開されているLEGOを使ってみる。 OS:Ubuntu 20.04 Webサーバ:nginx 1.18.0 LEGO:4.5.3 ダウンロード githubのReleasesからLEGOの実行ファイルをダウンロードする。 https://github.com/go-acme/lego ダウンロードしたのはlinux_amd64。解凍して適当なパスに配置する(今回は /usr/local/bin/に配置)。 証明書の取得 コマンドラインでlegoを実行して証明書を取得する。この際ドメインの所有者確認が行われる。これには二つの方法がありコマンドが異なる。 なお以降のサンプルではパラメータを以下としている。 ドメイン名:example.com 管理者アドレス:mail@example.com 出力パス:/opt/lego/ DNSにtxtレコードを登録する場合 DNSに設定したtxtレコードで所有者確認を行う。Webサーバに手を入れずに可能だが、DNSに設定できる必要がある。なお証明書の更新時にはまた別のtxtレコードを登録する必要がある。 sudo lego --dns manual --domains example.com --email mail@example.com --path /opt/lego/ run コマンドを実行するとtxtレコードのキーと値が表示されるので、コンソールはそのままにしてDNSサーバにtxtレコードを登録する。 登録後コマンドラインを続行するとLet's EncryptからDNSへレコードへ確認が行われる。 Webサイトにファイルを置く場合 Webサーバに置いたファイルで所有者確認を行う。既にWebサーバがドメイン名でhttpアクセスできる状態である必要がある。 sudo lego --accept-tos --domains example.com --email mail@example.com --path /opt/lego/ --http --http.webroot /opt/lego/acme-cha