Ubuntu20.04でACMEを使用してLet’sEncryptを使用してNginxをセットアップする方法

前のチュートリアルでは、Certbotを使用してLet’sEncryptから無料のSSL / TLS証明書を取得する方法について説明しました。

このチュートリアルでは、Let’sEncryptから無料のSSL / TLS証明書を簡単に取得して更新できる別の方法を紹介します。 acme.sh Ubuntu20.04のスクリプト。

動作するNGINXWebサーバーがまだない場合は、以下の簡単なNGINXインストールガイドに従ってください。

acme.shを入手する

acme.sh シェルスクリプトは、Let’sEncryptからの無料の証明書の発行と更新を自動化します。 acme.shスクリプトは、Webから直接ダウンロードするか、gitプロジェクトのクローンを作成することで入手できます。

Webからacme.shをダウンロードします

以下の2つのコマンドのいずれかを実行して、acme.shスクリプトをダウンロードして実行します。

$ curl https://get.acme.sh | sh

または

$ wget -O-https://get.acme.sh | sh

以下は example スクリプトの実行時に期待できることについて説明します。

$ wget -O-https://get.acme.sh | sh –2021-02-16 11:55:47– https://get.acme.sh/ get.acme.sh(get.acme.sh)を解決しています…2606:4700:3032 :: 6815:223e、 2606:4700:3031 :: ac43:c710、172.67.199.16、…get.acme.sh(get.acme.sh)| 2606:4700:3032 :: 6815:223e |:443に接続しています…接続されています。 HTTPリクエストが送信され、応答を待機しています…200 OK長さ:指定なし [text/html]
保存先: ‘STDOUT’
[ <=> ] 937 –.- KB / s in 0s 2021-02-16 11:55:47(11.8 MB / s)-stdoutに書き込まれます [937]
%合計%受信%Xferd平均速度時間時間時間現在のDloadアップロード合計使用済み左速度100204k 100204k 0 0 3350k 0-:-:-:-:-:-:- 3350k
[Tue 16 Feb 2021 11:55:47 AM UTC] オンラインアーカイブからインストールします。
[Tue 16 Feb 2021 11:55:47 AM UTC] https://github.com/acmesh-official/acme.sh/archive/master.tar.gzをダウンロードする
[Tue 16 Feb 2021 11:55:47 AM UTC] master.tar.gzを抽出しています
[Tue 16 Feb 2021 11:55:47 AM UTC] 最初にsocatをインストールすることをお勧めします。
[Tue 16 Feb 2021 11:55:47 AM UTC] スタンドアロンモードを使用する場合は、スタンドアロンサーバーにsocatを使用します。
[Tue 16 Feb 2021 11:55:47 AM UTC] スタンドアロンモードを使用しない場合は、この警告を無視してください。
[Tue 16 Feb 2021 11:55:47 AM UTC] /home/shola/.acme.shにインストールします
[Tue 16 Feb 2021 11:55:47 AM UTC] /home/shola/.acme.sh/acme.shにインストールされます
[Tue 16 Feb 2021 12:05:54 PM UTC] ‘/home/shola/.bashrc’へのエイリアスのインストール
[Tue 16 Feb 2021 12:05:54 PM UTC] OK、ターミナルを閉じて再度開き、acme.shの使用を開始します
[Tue 16 Feb 2021 11:55:47 AM UTC] cronジョブのインストール470 * * * “/home/shola/.acme.sh” /acme.sh –cron –home “/home/shola/.acme.sh”> / dev / null
[Tue 16 Feb 2021 11:55:47 AM UTC] 良い、 bash が見つかったので、使用するシェバンを変更します bash 好みに応じて。
[Tue 16 Feb 2021 11:55:48 AM UTC] わかった
[Tue 16 Feb 2021 11:55:48 AM UTC] インストール成功!

acme.shgitプロジェクトのクローンを作成します

または、1行に1つずつ以下のコマンドを実行して、acme.sh gitプロジェクトのクローンを作成し、スクリプトを実行します。

$ git clone https://github.com/acmesh-official/acme.sh.git $ cd acme.sh $ ./acme.sh –install

どちらの方法を選択した場合でも、「インストール成功!「メッセージ、あなたは close ターミナルウィンドウを開き、再度開いてインストールを検証します。

acme.shの使用法情報を表示するには、次のコマンドを実行します。

$ acme.sh -h

以下のコマンドを実行して、acme.shのバージョンを確認することもできます。

$ acme.sh –version

証明書を生成する

単一のドメインに対して単一の証明書を生成するには、以下のコマンドを実行します。

交換 yourdomain.com 登録したドメインで。 また、交換してください /var/www/yourdomain.com 必要に応じて、ドメインのWebサイトのルートフォルダを使用します。

$ acme.sh –issue -d yourdomain.com -w /var/www/yourdomain.com

同じWebサイトのルートフォルダーを共有する複数のドメイン/サブドメインの場合、次のコマンドを実行して証明書を発行できます。

$ acme.sh –issue -d yourdomain.com -d www.yourdomain.com -d subdomain.yourdomain.com -w /var/www/yourdomain.com

生成された証明書は〜/ .acme.sh /yourdomain.comに保存されます

acmeを使用してNGINXに証明書をインストールする

acme.shスクリプトを使用して証明書を生成したら、次のステップはそれをNGINXにインストールすることです。 まず、生成された証明書のコピー先となるフォルダーを作成します。

$ sudo mkdir -p /etc/nginx/certs/yourdomain.com

次のコマンドを実行して、証明書をインストールします。 交換することを忘れないでください yourdomain.com 登録したドメインで。

$ acme.sh –install-cert -d yourdomain.com –key-file /etc/nginx/certs/yourdomain.com/key.pem –fullchain-file /etc/nginx/certs/yourdomain.com/cert .pem –reloadcmd “service nginx force-reload”

NGINXサーバーブロックファイルを更新します

最後のステップは、ドメインのサーバーブロックファイルを更新して、SSL関連のディレクティブを含めることです。
以下のコマンドを実行して、サーバーブロックファイルを編集します。

$ sudo nano /etc/nginx/sites-available/yourdomain.com

次に、次の行を追加します。

聞く [::]:443 ssl ipv6only = on;
443sslをリッスンします。
ssl_certificate /etc/nginx/certs/cloudindevs.com/cert.pem;
ssl_certificate_key /etc/nginx/certs/cloudindevs.com/key.pem;

追加後、サーバーブロックファイルは下の画像のようになります。 新しい追加は赤で強調表示されます。 また、ポート80のlistenディレクティブがコメント化されていることに注意してください。

SSLを使用するようにNGINXサーバーブロックファイルを更新します

Save 変更と close ファイル。

次のコマンドでNGINXを再起動します。

$ sudo systemctl restart nginx

ブラウザでWebサイトにアクセスして、安全な通信が有効になっていることを確認します。

証明書の更新

Let’s Encryptによって発行された証明書は、60日ごとに自動的に更新されます。

ただし、必要に応じて、証明書を手動で更新することもできます。 以下のコマンドを実行します。

$ acme.sh –renew -d yourdomain.com –force

証明書の更新を停止するには、次の手順を実行します。

$ acme.sh –remove -d yourdomain.com

acme.shをアップグレードする

常に最新バージョンのacme.shを使用することをお勧めします。 以下のコマンドを実行して、acme.shが自動的に更新されるようにします。

$ acme.sh –upgrade –auto-upgrade

acme.shの自動アップグレードを無効にするには、次のコマンドを実行します。

$ acme.sh –upgrade –auto-upgrade 0

acme.shを自動的にアップグレードしたくない場合は、以下のコマンドを使用して手動で更新してください。

$ acme.sh –upgrade

結論

このガイドでは、Ubuntuでacme.shシェルスクリプトを使用してLet’sEncryptから無料のSSL / TLS証明書を取得および更新する手順について説明しました。 この方法は、Certbotツールを使用する代わりの方法です。 これらのツールを使用した経験についてお聞かせください。