SSL.comのお客様は、一般的なACMEプロトコルを使用して、SSL /を要求および取り消すことができます。TLS 証明書。
ACME(Automated Certificate Management Environment)は、X.509証明書の自動ドメイン検証とインストールのための標準プロトコルであり、 IETF RFC 8555。 多くのオープンソースを持つ十分に文書化された標準として クライアントの実装、ACMEは、ウェブサイトをプロビジョニングするための簡単な方法を提供します。 IoTデバイス 公的または私的に信頼されたデジタル証明書を備えたモデムやルーターなど、これらの証明書は時間の経過とともに更新されます。
このガイドでは、次の方法について説明します。
- 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アカウントにログインします。 すでにログインしている場合は、 ダッシュボード タブには何も表示されないことに注意してください。
- クリック API資格情報、下にあります 開発者と統合.
- あなたはあなたが必要になります アカウント/ ACMEキー と HMACキー 証明書を要求します。 クリップボードアイコンをクリックします()各キーの横にある値をクリップボードにコピーします。
- クリップボードアイコンをクリックして、電子メールアドレス、アカウント/ ACMEキー、およびHMACキーが事前に入力されたCertbotコマンドをコピーすることもできます() の隣に cliコマンド、以下 ACME証明書ボット。 この事前にフォーマットされたコマンドは、HTTP-01チャレンジメソッドを介して証明書を注文します。
手動で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証明書の種類 およびそれに対応する価格。
- 以下のスクリーンショットに示すように、ジョブタイプを
--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
.
-
) キャラクター。 この場合、シェルがダッシュを解釈しないように、ファイルを作成するときにディレクトリを指定する必要がある場合があります(例: 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。 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
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.com
,www.example.com
,info.example.com
example.com
,www.example.com
,info.example.com
,store.example.com
- マルチドメインUCC / SAN SSL:ドメイン名の他の組み合わせ。 例えば:
- ベースドメイン名とXNUMXつ以上のサブドメイン
- XNUMXつ以上のワイルドカードおよび/または非サブドメインドメイン名
SSL.comの参加者 再販業者および大量購入プログラム 料金階層に関連付けられた割引料金で請求されます。
詳細については
ACMEプロトコル(Certbotの有無にかかわらず)でできることはもっとたくさんあります。 詳細については、次のリソースを参照してください。
- ACMEプロトコルとは何ですか?
- ACME SSL /TLS ApacheとNginxによる自動化
- SSL /TLS ACMEによるIoTの自動化
- Certbotのドキュメント
- Certbotのmanページ
SSL.comアカウントについてさらにサポートが必要ですか?
- SSL.comアカウント–送信 CSR
- 事前テストに失敗しましたか?!
- SSL.comアカウント–検証
- SSL.comアカウント–注文
- SSL.comのSWSAPI –はじめに
- SSL.comアカウント–ドメイン
- ドキュメント署名とEVコード署名でサポートされるCloud HSM