SSL /TLS ACMEによる証明書の発行と失効

ACMEロゴSSL.comのお客様は、一般的なACMEプロトコルを使用して、SSL /を要求および取り消すことができます。TLS 証明書。

ACME(Automated Certificate Management Environment)は、X.509証明書の自動ドメイン検証とインストールのための標準プロトコルであり、 IETF RFC 8555。 多くのオープンソースを持つ十分に文書化された標準として クライアントの実装、ACMEは、ウェブサイトをプロビジョニングするための簡単な方法を提供します。 IoTデバイス 公的または私的に信頼されたデジタル証明書を備えたモデムやルーターなど、これらの証明書は時間の経過とともに更新されます。

ACMEはウェブサイトだけのものではありません! SSL.comからのACME対応の発行CAにより、IoTベンダーは、SSL /の検証、インストール、更新、および取り消しを簡単に管理および自動化できます。TLS ACME対応デバイスの証明書。

IoT向けACMEの詳細

このガイドでは、次の方法について説明します。

  • ACMEで証明書を要求するために必要な資格情報を見つけて取得します。
  • Certbotを使用してSSL /を手動でリクエストしますTLS 経由の証明書 HTTP-01 & DNS-01 チャレンジ方法。
  • Certbotを使用して証明書を取り消します。
注:
他の多くの ACME クライアントを使用できます。 Kubernetescert-manager、SSL.com の ACME サービスを使用します。
アクメ4j  クライアントは、このリポジトリで SSL.com ACME サービスを使用できるようになりました。 https://github.com/SSLcom/acme4j
他の Certbot ACME クライアント以外の手順については、ソフトウェア プロバイダーのドキュメントを参照してください。

Certbotをインストールする

このガイドは、次のようなコンピュータで作業していることを前提としています。 Certbot インストールされています。 Certbotは、Electronic Frontier Foundation(EFF)によって開発された無料のオープンソースツールであり、SSL /を要求または取り消すために使用できます。TLS ACMEプロトコルを介したSSL.comからの証明書。 Certbotは、Linux、macOS、Windowsなどのさまざまなプラットフォームで実行できます。

  • あなたが持っている場合 スナップインストール、次のコマンドを使用してインストールできます。
    sudo snap install --classic certbot
  • If /snap/bin/ あなたの中にはありません PATH、追加するか、次のようなコマンドを実行する必要もあります。
    sudo ln -s / snap / bin / certbot / usr / bin / certbot

システムへのCertbotのインストールに関する詳細情報が必要な場合は、EFFのを参照してください。 ドキュメント.

ACME資格情報を取得する

ACMEを使用して証明書を要求する前に、 アカウントキー & HMACキー SSL.comアカウントから。

SSL.com リセラーとボリューム購入 パートナーはできます ACMEクレデンシャルを生成する 彼らの顧客のために。 読んだ このハウツー 完全な説明は、
  1. SSL.comアカウントにログインします。 すでにログインしている場合は、 ダッシュボード タブには何も表示されないことに注意してください。
    ダッシュボード
  2. クリック API資格情報、下にあります 開発者と統合.
    API認証情報リンク
  3. あなたはあなたが必要になります アカウント/ ACMEキー & HMACキー 証明書を要求します。 クリップボードアイコンをクリックします()各キーの横にある値をクリップボードにコピーします。
    アカウント/ ACMEキーとHMACキー
  4. クリップボードアイコンをクリックして、電子メールアドレス、アカウント/ ACMEキー、およびHMACキーが事前に入力されたCertbotコマンドをコピーすることもできます() の隣に cliコマンド、以下 ACME証明書ボット。 この事前にフォーマットされたコマンドは、HTTP-01チャレンジメソッドを介して証明書を注文します。certbotコマンドのコピー

手動でSSLをリクエスト/TLS 認証

資格情報を取得したので、次の方法で証明書を要求できます。 certbot コマンド。 Certbotは、HTTP-01とDNS-01のXNUMXつのドメイン検証(DV)メソッドをサポートしています。

HTTP-01チャレンジ方式

HTTP-01 ACMEおよびCertbotで使用される最も一般的に使用されるチャレンジ方法です。 この方法で証明書を要求すると、Certbotは、Webサイトで一般公開されているファイルを作成するために使用できるトークンを生成します。 SSL.comのACMEサーバーは、HTTP経由でファイルを検証し、正しい場合は署名付き証明書を発行します。

認定要件: HTTP-01方式では、Webサーバーにアクセスできること、およびサイトがポート経由で利用可能であることが必要です。 80 HTTP経由。 あなたも必要になります sudo コンピューターの特権。

証明書を手動で取得するには、次のコマンドを使用します。 ALLCAPSの値を実際の値に置き換えます。 (上記のように、ポータルアカウントからこれを行うcertbotコマンドをコピーして貼り付けることもできます):

sudo certbot certonly --manual --server https://acme.ssl.com/sslcom-dv-ecc --config-dir /etc/ssl-com --logs-dir /var/log/ssl-com --同意する --no-eff-email --email EMAIL-ADDRESS --eab-hmac-key HMAC-KEY --eab-kid ACCOUNT-KEY -d DOMAIN.NAME

コマンドの内訳:

  • sudo certbot 実行します certbot スーパーユーザー権限を持つコマンド。
  • certonly 証明書の取得を要求しますが、インストールは要求しません。
  • --manual Certbotをインタラクティブに実行することを指定します。
  • --server https://acme.ssl.com/sslcom-dv-ecc SSL.comのACMEサーバーを指定します。
  • --config-dir /etc/ssl-com (オプション)構成ディレクトリを設定します。
  • --logs-dir /var/log/ssl-com (オプション)ログのディレクトリを設定します。
  • --agree-tos (オプション)ACMEサブスクライバー契約に同意します。 インタラクティブに同意したい場合は、これを省略できます。
  • --no-eff-email (オプション)は、EメールアドレスをEFFと共有したくないことを示します。 これを省略すると、メールアドレスを共有するオプションが表示されます。
  • --email EMAIL-ADDRESS 登録メールアドレスを提供します。 複数のアドレスをコンマで区切って指定できます。
  • --eab-hmac-key HMAC-KEY HMACキーを指定します。
  • --eab-kid ACCOUNT-KEY アカウントキーを指定します。
  • -d DOMAIN.NAME 証明書がカバーするドメイン名を指定します。 を使用できることに注意してください -d DOMAIN.NAME 証明書にドメイン名を追加するには、コマンドで複数回オプションを選択します。 Certbotでは、要求されたドメイン名ごとにチャレンジファイルを作成する必要があります。 上のセクションを参照してください 証明書の種類と請求 ドメイン名のさまざまな組み合わせがどのようにマップされるかを確認するには、以下を参照してください SSL.com証明書の種類 およびそれに対応する価格。
注: Certbot 2.0.0 以降では、デフォルトで新しい証明書の ECDSA が生成されます。 上記のコマンドは、ECDSA キーペアと証明書を生成します。 代わりに RSA キーを使用するには:

  • 以下のスクリーンショットに示すように、ジョブタイプを --server コマンドの値 https://acme.ssl.com/sslcom-dv-rsa
  • Add --key-type rsa コマンドに。
上記を初めて実行したとき 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).

上記のコマンドを実行すると、検証ファイルを作成するための指示が表示されます。

---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- --------このデータだけを含むファイルを作成します:cr1rsRTImVz_s7HHk7biTQ。 9mOlJPgZ8D97HojOHnhD6hYeZZOPDUDNMxchFUNJQvIそして、次のURLのWebサーバーで利用できるようにします。 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ------ Enterキーを押して続行します

ファイルを作成し、HTTP overport経由でアクセスできるWebサーバー上の場所に保存します 80 表示されたURLで、を押します Enter.

注: HTTP-01チャレンジでは、ダッシュで始まるファイル名が必要になる場合があります(-) キャラクター。 この場合、シェルがダッシュを解釈しないように、ファイルを作成するときにディレクトリを指定する必要がある場合があります(例: vim ./-r1rsRTImVz_s7HHk7biTQ).

すべての情報が正しい場合は、証明書チェーンと秘密鍵の場所を示す確認メッセージが表示されます。

重要な注意事項:-おめでとうございます! 証明書とチェーンは次の場所に保存されています:/etc/ssl-com/live/DOMAIN.NAME/fullchain.pemキーファイルは次の場所に保存されています:/etc/ssl-com/live/DOMAIN.NAME/privkey.pem証明書は2021-10-05に期限切れになります。 将来、この証明書の新しいバージョンまたは微調整されたバージョンを取得するには、certbotを再度実行するだけです。 すべての証明書を非対話的に更新するには、「certbotrenew」を実行します

これで、新しい証明書と秘密鍵にアクセスするようにWebサーバーを構成できます。

DNS-01チャレンジ方法

  DNS-01 チャレンジ方法はHTTP-01よりも使いにくいですが、複数のWebサーバーで使用する方が便利な場合があります。 この方法では、Certbotは、証明書が保護するドメイン名でDNSTXTレコードを作成するために使用するトークンを提供します。

認定要件: DNS-01方式では、Webサイトのドメイン名のDNSレコードを作成する機能が必要です。

次のコマンドは、DNS-01チャレンジメソッドを介してDOMAIN.NAMEの証明書を要求します。

sudo certbot certonly --manual --server https://acme.ssl.com/sslcom-dv-rsa --agree-tos --no-eff-email --email EMAIL-ADDRESS --eab-hmac-key HMAC-KEY --eab-kid ACCOUNT-KEY --preferred-challenges dns -d DOMAIN.NAME

注: あなたが使用することができます -d DOMAIN.NAME 証明書にドメイン名を追加するには、コマンドで複数回オプションを選択します。 Certbotでは、要求されたドメイン名ごとに個別のDNSTXTレコードを作成する必要があります。 を押す前に、各TXTレコードが伝播するのを待つ必要はありません。 Enter 最後の挑戦に到達するまで。 上のセクションを参照してください 証明書の種類と請求 ドメイン名のさまざまな組み合わせがどのようにマップされるかを確認するには、以下を参照してください 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).

このコマンドはHTTP-01セクションのコマンドと同じですが、 --preferred-challenges dns オプション。 コマンドを実行すると、DNSレコードを作成するための手順が表示されます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.DOMAIN.NAME with the following value: -87YKoj3sQZB4rVCMZTiifl9QJKYm2eYYymAkpE0zBo Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue

DNS TXTレコードを作成し、それが伝播するのを待ちます。 ((whatsmydns.net DNS伝播をチェックするための便利なツールです)。 レコード名の先頭にある下線文字(_)は次のとおりです。 の提出が必要です。 レコードが世界中に広まったら、 Enter.

ワイルドカード証明書を要求している場合(例: *.example.com)ベースドメイン名も保護したい場合は、個別にリクエストする必要があります(たとえば -d *.example.com -d example.com)。 このような場合、作成する必要があります 2 同じ名前のTXTレコード(_acme-challenge.example.com).

すべての情報が正しい場合は、証明書チェーンと秘密鍵の場所を示す確認メッセージが表示されます。

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/ssl-com/live/DOMAIN.NAME/fullchain.pem Your key file has been saved at: /etc/ssl-com/live/DOMAIN.NAME/privkey.pem Your cert will expire on 2021-10-05. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew"

これで、新しい証明書と秘密鍵にアクセスするようにWebサーバーを構成できます。

証明書の更新(手動)

手動で発行された証明書の場合(このガイドで説明されているように)、証明書の更新は、証明書の要求に使用されたコマンドを繰り返すだけで実行されます。 Certbotは renew サブコマンドですが、で要求された証明書で使用しようとするとエラーが発生します --manual オプション:

sudo certbot renew--force-renewalデバッグログを/var/log/ssl-com/letsencrypt.logに保存------ ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- _etc / ssl-com / renewal / DOMAIN.NAMEの処理---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----適切なプラグインを選択できませんでした:手動プラグインが機能していません。 既存の構成に問題がある可能性があります。 エラーは次のとおりです。PluginError( '手動プラグインを非対話的に使用する場合は、認証スクリプトに--manual-auth-hookを指定する必要があります。'、)/ etc / ssl-com /から証明書(DOMAIN.NAME)を更新しようとしています。 renewal /DOMAIN.NAME.confで予期しないエラーが発生しました。手動プラグインが機能していません。 既存の構成に問題がある可能性があります。 エラーは次のとおりです。PluginError( '手動プラグインを非対話的に使用する場合は、認証スクリプトに--manual-auth-hookを指定する必要があります。'、)。 スキップします。 すべての更新の試みは失敗しました。 次の証明書は更新できませんでした:/etc/ssl-com/live/DOMAIN.NAME/fullchain.pem(失敗)------ --- --- --- --- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- --------すべての更新試行が失敗しました。 次の証明書は更新できませんでした:/etc/ssl-com/live/DOMAIN.NAME/fullchain.pem(失敗)------ --- --- --- --- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- 1更新失敗、0解析失敗

証明書の失効

で証明書を取り消す certbot revoke。 ALL CAPSの証明書パスを実際の値に置き換えます(たとえば、 /etc/ssl-com/live/example.com/cert.pem)。 カスタムを指定しなかった場合 --config-dir & --logs-dir 元の証明書を要求するときは、これらのオプションを省略してください。

sudo certbot revoke --server https://acme.ssl.com/sslcom-dv-rsa --cert-path /PATH/TO/cert.pem --config-dir / etc / ssl-com --logs-dir / var / log / ssl-com

取り消された証明書も削除するかどうかを確認するメッセージが表示されます。

---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- -----以前のバージョンとそれ以降のすべてのバージョンの証明書とともに、取り消したばかりですか? ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- --------(Y)es(推奨)/(N )o:Y ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----------------証明書に関連するすべてのファイルを削除しましたDOMAIN.NAME。 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
注: を使用して証明書を取り消そうとすると、一部のユーザーがこのエラーを受け取る場合があります。 SSL.comの ACME エンドポイント:Unable to register an account with ACME server. Error returned by the ACME server: Something went wrong. We apologize for the inconvenience.

エラーを解決するには、次のことを試してください。
a) 証明書の秘密鍵のパスを指定して、失効リクエストに署名します。
例: --key-path /PATH/TO/privkey.pem
b) カスタム ディレクトリを使用した場合は、証明書を発行したときに使用したディレクトリを指定します。 --config-dir

証明書の種類と請求

すべてSSL /TLS SSL.comによってACMEを介して発行された証明書は、XNUMX年間の証明書です。 受け取る(および請求される)SSL.com証明書の種類は、要求されたドメイン名の数と種類によって異なります。

  • 基本SSL:XNUMXつのドメイン名、またはドメイン名と www サブドメイン(例: example.com & www.example.com).
    • ベースドメイン名との両方を保護したい場合は注意してください www、Certbotコマンドに両方を含める必要があります(例: -d example.com -d www.example.com).
  • ワイルドカードSSL:XNUMXつのワイルドカードドメイン名、またはXNUMXつのワイルドカードドメイン名とベースドメイン名(例: *.example.com & example.com).
  • プレミアムSSL:ベースドメイン名とXNUMX〜XNUMX個の非ワイルドカードサブドメイン。 (例外:上記のように、ベースドメインと www サブドメイン[および他のドメイン]は基本SSLとして請求されます。)例:
    • example.com & info.example.com
    • example.comwww.example.com, info.example.com
    • example.comwww.example.com, info.example.com , store.example.com
  • マルチドメインUCC / SAN SSL:ドメイン名の他の組み合わせ。 例えば:
    • ベースドメイン名とXNUMXつ以上のサブドメイン
    • XNUMXつ以上のワイルドカードおよび/または非サブドメインドメイン名

SSL.comの参加者 再販業者および大量購入プログラム 料金階層に関連付けられた割引料金で請求されます。

詳細については

ACMEプロトコル(Certbotの有無にかかわらず)でできることはもっとたくさんあります。 詳細については、次のリソースを参照してください。

SSL.comアカウントについてさらにサポートが必要ですか?

SSL.comをご利用いただきありがとうございます。 ご不明な点がございましたら、メールでお問い合わせください。 Support@SSL.com電話する 1-877-SSL-SECURE、またはこのページの右下にあるチャットリンクをクリックしてください。 また、サポートに関する多くの一般的な質問への回答も、 知識ベース.
Twitter
Facebook
LinkedIn
Reddit
メール

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

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

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

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