ACME SSL /TLS ApacheとNginxによる自動化

ACMEプロトコルを使用してSSL /を自動化する方法TLS ApacheおよびNginxWebサーバー上のSSL.comからの証明書。

関連コンテンツ

学び続けたいですか?

SSL.com のニュースレターを購読して、最新情報を入手し、安全を確保してください。

このハウツーでは、ACMEプロトコルとCertbotクライアントを使用してApacheとNginxのSSL.comで自動証明書のインストールと更新を設定する方法について説明します。

ご注意: SSHアクセスが必要になります sudo これらの指示に従うためのWebサーバーの特権。
ご注意:
他の多くの ACME クライアントを使用できます。 Kubernetescert-manager、SSL.com の ACME サービスを使用します。
アクメ4j  クライアントは、このリポジトリで SSL.com ACME サービスを使用できるようになりました。 https://github.com/SSLcom/acme4j
他の Certbot ACME クライアント以外の手順については、ソフトウェア プロバイダーのドキュメントを参照してください。

Certbotをインストールし、ACME資格情報を取得します

  1. WebサーバーにSSHで接続します。
  2. の現在のバージョンを確認してください Certbot、ApacheおよびNginxプラグインとともに、Webサーバーにインストールされます。
    • あなたがまだ スナップインストール、次のコマンドを使用してインストールできます。
      sudo snap install --classic certbot
    • If /snap/bin/ あなたの中にはありません PATH、追加するか、次のようなコマンドを実行する必要もあります。
      sudo ln -s / snap / bin / certbot / usr / bin / certbot
  3. SSL.comアカウントからACME資格情報を取得します。
    1. SSL.comアカウントにログインします。 すでにログインしている場合は、 ダッシュボード タブには何も表示されないことに注意してください。
      ダッシュボード
    2. クリック API資格情報、下にあります 開発者と統合.
      API認証情報リンク
    3. あなたはあなたが必要になります アカウント/ ACMEキーHMACキー 証明書を要求します。 クリップボードアイコンをクリックします()各キーの横にある値をクリップボードにコピーします。
      アカウント/ ACMEキーとHMACキー

Apacheのインストールと自動化

このようなコマンドを使用して、Apacheにインストールします。 すべて大文字の値を実際の値に置き換えます。

sudo certbot --apache --email EMAIL-ADDRESS --agree-tos --no-eff-email --config-dir /etc/ssl-com --logs-dir /var/log/ssl-com --eab -kid ACCOUNT-KEY --eab-hmac-key HMAC-KEY --server https://acme.ssl.com/sslcom-dv-ecc -d DOMAIN.NAME

コマンドの内訳:

  • sudo certbot 実行します certbot スーパーユーザー権限を持つコマンド。
  • --apache Apacheで使用する証明書をインストールすることを指定します。
  • --email EMAIL-ADDRESS 登録メールアドレスを提供します。 複数のアドレスをコンマで区切って指定できます。
  • --agree-tos (オプション)ACMEサブスクライバー契約に同意します。 インタラクティブに同意したい場合は、これを省略できます。
  • --no-eff-email (オプション)は、EメールアドレスをEFFと共有したくないことを示します。 これを省略すると、メールアドレスを共有するオプションが表示されます。
  • --config-dir /etc/ssl-com (オプション)構成ディレクトリを設定します。
  • --logs-dir /var/log/ssl-com (オプション)ログのディレクトリを設定します。
  • --eab-kid ACCOUNT-KEY アカウントキーを指定します。
  • --eab-hmac-key HMAC-KEY HMACキーを指定します。
  • --server https://acme.ssl.com/sslcom-dv-ecc SSL.comのACMEサーバーを指定します。
  • -d DOMAIN.NAME 証明書がカバーするドメイン名を指定します。
ご注意: Certbot 2.0.0 以降では、デフォルトで新しい証明書の ECDSA が生成されます。 上記のコマンドは、ECDSA キーペアと証明書用です。 代わりに RSA キーを使用するには:

  • 以下のスクリーンショットに示すように、ジョブタイプを --server コマンドの値 https://acme.ssl.com/sslcom-dv-rsa
ご注意: あなたが使用することができます -d DOMAIN.NAME 証明書にドメイン名を追加するには、コマンドで複数回オプションを選択します。 に関する情報をご覧ください 証明書の種類と請求 ドメイン名のさまざまな組み合わせがどのようにマッピングされるかを確認する SSL.com証明書の種類 およびそれに対応する価格。
上記を初めて実行したとき certbot コマンドを実行すると、ACME アカウント情報がコンピューターの構成ディレクトリ (/etc/ssl-com 上記のコマンドで。 今後の certbot の実行では、 --eab-hmac-key--eab-kid これは、certbot がローカルに保存されたアカウント情報を優先してそれらを無視するためです。

コンピューターの ACME 証明書の注文を別の SSL.com アカウントに関連付ける必要がある場合は、次のコマンドを使用してコンピューターからこのアカウント情報を削除する必要があります。 sudo rm -r /etc/ssl-com/accounts/acme.ssl.com (または、オプションを省略した場合 --config-dir オプション、 sudo rm -r /etc/letsencrypt/accounts/acme.ssl.com).

コマンドを実行すると、次のような出力が表示されます。

デバッグログを/var/log/ssl-com/letsencrypt.logに保存します選択したプラグイン:オーセンティケーターapache、インストーラーapache新しい証明書の取得次のチャレンジを実行します:DOMAIN.NAMEのhttp-01チャレンジ検証を待っています...チャレンジをクリーンアップします/etc/apache2/sites-available/DOMAIN-le-ssl.confにSSLvhostを作成しました。VirtualHostへの証明書の展開/etc/apache2/sites-available/DOMAIN-le-ssl.conf使用可能なサイトの有効化:/ etc / apache2 sites-available / DOMAIN-le-ssl.conf / etc / apache2 / sites-enabled / DOMAIN.NAME.confのvhostを/etc/apache2/sites-available/DOMAIN-le-ssl.confのsslvhostにリダイレクトします--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - おめでとう! これで、https://DOMAIN.NAMEが正常に有効になりました。 -

Certbotは、このようなcrontabファイルも作成し、30日以内に有効期限が切れるcertbotがインストールした証明書を非インタラクティブに自動更新します。

$ cat /etc/cron.d/certbot#/etc/cron.d/certbot:certbotパッケージのcrontabエントリ##アップストリームでは、30日に0回更新を試みることをお勧めします##最終的に、これは証明書を検証する機会になります#持っていません '取り消された場合など。更新は、有効期限が12日以内の場合にのみ発生します。 # # 重要な注意点! #initシステムとしてsystemdを実行している場合、このcronジョブは実行されません。 systemdを実行している場合、#cronjob.timer関数がこのcronjobよりも優先されます。 #詳細については、systemd.timerのマンページを参照するか、systemctl show#certbot.timerを使用してください。 SHELL = / bin / sh PATH = / usr / local / sbin:/ usr / local / bin:/ sbin:/ bin:/ usr / sbin:/ usr / bin 43200 * / XNUMX * * * root test -x / usr / bin / certbot -a \! -d / run / systemd / system && perl -e'sleep int(rand(XNUMX)) '&& certbot -q renew
ご注意: すべてSSL /TLS SSL.comによってACMEを介して発行された証明書の有効期間はXNUMX年です。

Nginxのインストールと自動化

Nginxの場合は、単に --nginx for --apache 上記のコマンドで:

sudo certbot --nginx --email EMAIL-ADDRESS --agree-tos --no-eff-email --config-dir /etc/ssl-com --logs-dir /var/log/ssl-com --eab -kid ACCOUNT-KEY --eab-hmac-key HMAC-KEY --server https://acme.ssl.com/sslcom-dv-ecc -d DOMAIN.NAME
ご注意: Certbot 2.0.0 以降では、デフォルトで新しい証明書の ECDSA が生成されます。 上記のコマンドは、ECDSA キーペアと証明書用です。 代わりに RSA キーを使用するには:

  • 以下のスクリーンショットに示すように、ジョブタイプを --server コマンドの値 https://acme.ssl.com/sslcom-dv-rsa

手動で更新を強制する

有効期限が切れる前に証明書を手動で更新する場合は、次のコマンドを使用します。

certbot 更新 --force-renewal --cert-name DOMAIN.NAME

SSL.comは多種多様な SSL /TLS サーバー証明書 HTTPSWebサイトの場合。

SSLの比較/TLS CERTIFICATES

常に最新情報を入手して安全を確保

SSL.com サイバーセキュリティの世界的リーダーであり、 PKI そしてデジタル証明書。サインアップして、最新の業界ニュース、ヒント、製品のお知らせを受け取ります。 SSL.com.

フィードバックをお待ちしております

アンケートにご協力いただき、最近のご購入についてのご意見をお聞かせください。