クラウドサーバーでの SSL 証明書の手動管理は、複雑でエラーが発生しやすく、反復的な作業です。これを簡素化するため、Certificate Management Service は自動デプロイ機能を提供しています。特定の ECS 信頼されたインスタンスにワンクリックで証明書をデプロイしたり、証明書がすでに設定されている Elastic Compute Service (ECS) インスタンスや Simple Application Server インスタンスの証明書を自動的に更新したりできます。このプロセスにより、デプロイメント効率が向上し、設定リスクが軽減されます。
デプロイメント方法
サーバータイプとシナリオに基づいてデプロイメント方法を選択してください。
特徴 | ワンクリックデプロイメント (初回デプロイ向け) | 手動デプロイメント (証明書更新向け) |
コアメカニズム | 完全自動化。秘密鍵はインスタンス内に留まり、PKCS#11 インターフェイスを介してハードウェア信頼性モジュールと通信するため、高いセキュリティが確保されます。 | 半自動化。新しい証明書ファイルが指定されたサーバーパスにアップロードされ、古いファイルが上書きされます。 |
サポート対象サーバー | 特定の ECS 信頼されたインスタンス (第 7/8 世代 x86 アーキテクチャ) のみをサポートします。Simple Application Server はサポートされていません。 | すべての ECS インスタンスと Simple Application Server インスタンスをサポートします。 |
サポート対象オペレーティングシステム | Alibaba Cloud Linux 3.x および Ubuntu 22.04 UEFI イメージ。 | すべての主要な Linux および Windows Server ディストリビューション。 |
サポート対象 Web サーバー |
| Nginx、Apache、Tomcat を含むすべての Web サーバーをサポートします。 |
SSL 証明書の要件 | RSA アルゴリズムを使用するシングルドメイン SSL 証明書。 | すべてのタイプの SSL 証明書。 |
利用シーン | 完全自動更新を有効にするために、対象の ECS 信頼されたインスタンスに証明書を初回デプロイする場合。 | ECS または Simple Application Server インスタンスにデプロイ済みの既存の証明書を更新する場合。 |
どちらの方法も要件を満たさない場合は、「SSL 証明書のデプロイ方法の選択」をご参照ください。
ワンクリックデプロイメント (ECS 信頼されたインスタンス向け)
この方法は、ECS 信頼されたインスタンスのセキュリティモジュールと統合し、証明書と秘密鍵の完全自動化された高セキュリティなデプロイメントを提供します。複数年証明書を購入した場合、システムは自動的に更新およびアップデートします。
前提条件
インスタンスタイプと仕様:第 7 世代および第 8 世代の x86 ベースの ECS 信頼されたインスタンス。詳細については、「信頼されたインスタンスの作成」をご参照ください。この方法は Simple Application Server をサポートしていません。
オペレーティングシステム:Alibaba Cloud Linux 3.x または Ubuntu 22.04 UEFI イメージ。
Web サーバー:
yumまたはaptリポジトリからインストールされた特定のバージョンの Nginx。Alibaba Cloud Linux 3.x イメージの場合:yum を使用してインストールされた Nginx、バージョン 1.18.0-2.1.al8 から 1.20.1-1.0.5.al8 (このバージョンは含まない) まで。
Ubuntu 22.04 UEFI イメージの場合:apt を使用してインストールされた Nginx。
証明書タイプとステータス:RSA アルゴリズムを使用し、ステータスが 発行済み のシングルドメイン SSL 証明書。
サーバー権限:
rootアカウントまたはsudo権限を持つアカウントが必要です。ドメイン名の名前解決:ドメインの DNS レコードが設定され、サーバーのパブリック IP アドレスに解決されていること。
ステップ 1:クラウドアシスタントのステータス確認
コンソールからワンクリックデプロイメント機能を使用するには、ECS インスタンスにクラウドアシスタントがインストールされ、実行中である必要があります。
ECS コンソール - ECS クラウドアシスタントに移動します。
ターゲットインスタンスのリソースグループとリージョンを選択します。
インスタンスタブで、目的の ECS サーバーを特定し、クラウドアシスタントのステータス列でステータスを確認します。
説明クラウドアシスタントがインストールされていない、またはステータスが異常な場合は、「クラウドアシスタントのステータスの表示と例外のトラブルシューティング」をご参照ください。
ステップ 2:Nginx Web サーバーの設定
初回デプロイメントでは、Nginx が PKCS#11 インターフェイスを介して信頼性モジュールから秘密鍵にアクセスできるように、Nginx 設定ファイルを変更する必要があります。このステップは、その後の更新では不要です。
Alibaba Cloud Linux 3.x
このセクションでは、Nginx 1.20.1 を例として使用します。yum を使用してインストールされた Nginx のデフォルトインストールディレクトリは /etc/nginx/ です。このディレクトリを変更した場合は、パスを適宜調整してください。
Nginx のバージョンを確認します。
Nginx バージョン 1.18.0-2.1.al8 から 1.20.1-1.0.5.al8 (このバージョンは含まない) のみがサポートされています。
重要ECS インスタンスに Nginx がすでにインストールされている場合は、ワンクリックデプロイメント機能を使用する前にそのバージョンを確認する必要があります。バージョンがサポートされていない場合は、Nginx をダウングレードするか再インストールする必要があります。
/etc/nginx/nginx.confファイルを開き、pid /run/nginx.pid;の後にssl_engine pkcs11;を追加して、PKCS#11 暗号化エンジンを指定します。以下の例は、場所と完全な設定を示しています:user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # PKCS#11 暗号化エンジンを指定 ssl_engine pkcs11;/etc/nginx/nginx.confファイルを開き、Settings for a TLS enabled server セクションのコメントを解除し、include "/etc/acm/ssl/nginx-acm.conf";を追加して SSL キー設定を参照します。追加する内容:
include "/etc/acm/ssl/nginx-acm.conf";以下の例は、場所と完全な設定を示しています:
server { listen 443 ssl http2; listen [::]:443 ssl http2; # ホスト名またはコモンネーム (CN) を指定 server_name example.com; root /usr/share/nginx/html; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_prefer_server_ciphers on; # SSL キー設定を参照 include "/etc/acm/ssl/nginx-acm.conf"; # デフォルトサーバーブロックの設定ファイルをロード include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
/usr/lib/systemd/system/nginx.serviceファイルを開き、P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sockとOPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnfを追加して、SSL キーサービスとの通信を設定します。追加する内容:
Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock" Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf"以下の例は、場所と完全な設定を示しています:
[Unit] Description=A high performance web server and a reverse proxy server Documentation=man:nginx(8) After=network.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid TimeoutStopSec=5 KillMode=mixed # SSL キーサービスとの通信を設定 Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock" Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf" [Install] WantedBy=multi-user.target説明Nginx systemd サービスファイルのパスがわからない場合は、
sudo find / -name "nginx.service"を実行して見つけてください。
次のコマンドを実行して、Nginx systemd サービス設定を再読み込みします:
systemctl daemon-reload
Ubuntu 22.04
このセクションでは、Nginx 1.18.0 を例として使用します。apt を使用してインストールされた Nginx のデフォルトインストールディレクトリは /etc/nginx/ です。このディレクトリを変更した場合や、別の方法で Nginx をインストールした場合は、パスを適宜調整してください。
/etc/nginx/nginx.confファイルを開き、pid /run/nginx.pid;の後にssl_engine pkcs11;を追加して、SSL/TLS 暗号化エンジンを指定します。以下の例は、場所と完全な設定を示しています:user www-data; worker_processes auto; pid /run/nginx.pid; # PKCS#11 暗号化エンジンを指定 ssl_engine pkcs11; include /etc/nginx/modules-enabled/*.conf;/etc/nginx/sites-enabled/defaultファイルを開き、ファイル内に新しいサーバーブロックを作成し、その中にinclude "/etc/acm/ssl/nginx-acm.conf";を追加します。追加する内容:
include "/etc/acm/ssl/nginx-acm.conf";以下の例は、場所と完全な設定を示しています:
server { listen 443 ssl; # ホスト名またはコモンネーム (CN) を指定 server_name example.com; root /var/www/html; index index.html index.htm; access_log /var/log/nginx/access_6equj5.log; error_log /var/log/nginx/error_6equj5.log; ssl on; # SSL キー設定を参照 include "/etc/acm/ssl/nginx-acm.conf"; location / { try_files $uri $uri/ =404; } }
/usr/lib/systemd/system/nginx.serviceファイルを開き、P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sockとOPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnfを追加して、SSL キーサービスとの通信を設定します。説明Nginx systemd サービスファイルのパスがわからない場合は、
sudo find / -name "nginx.service"を実行して見つけてください。追加する内容:
Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock" Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf"以下の例は、場所と完全な設定を示しています:
[Unit] Description=A high performance web server and a reverse proxy server Documentation=man:nginx(8) After=network.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid TimeoutStopSec=5 KillMode=mixed # SSL キーサービスとの通信を設定 Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock" Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf" [Install] WantedBy=multi-user.target
次のコマンドを実行して、Nginx systemd サービス設定を再読み込みします:
systemctl daemon-reload
ステップ 3:コンソールからの証明書デプロイ
Certificate Management Service コンソールにログインします。
左側のナビゲーションバーで、を選択します。
クラウドサーバーのデプロイ ページで、タスクの作成 をクリックし、以下の手順に従って SSL 証明書をデプロイします。
基本設定 ページで、タスク名 を入力し、次へ をクリックします。
証明書の選択 ページで、証明書タイプ と 証明書の関連付け を選択し、次へ をクリックします。
各デプロイメントタスクは 1 つの証明書のみをサポートします。複数の証明書をデプロイするには、複数のデプロイメントタスクを作成してください。
リソースの選択 ページで、すべてのタイプ を ワンクリックデプロイ に設定し、ターゲット ECS インスタンスを選択して、次へ をクリックします。
システムは、現在の Alibaba Cloud アカウント配下にある対象の ECS インスタンスをすべて自動的に識別して取得します。リソースが表示されない場合は、左上隅の 総リソース エリアで、クラウドプロダクトリソースの同期 をクリックします。リソースの同期時間は、現在のクラウドプロダクトのリソース数によって異なります。しばらくお待ちください。
リストに多数のインスタンスが含まれている場合、すべてのタイプ ドロップダウンリストから ワンクリックデプロイ を選択して、サポートされているインスタンスをすばやく絞り込みます。
ワンクリックデプロイ タブで、証明書デプロイメント環境の要件が満たされていることを確認し、上記のステップが完了したことを確認する チェックボックスを選択して、デプロイの続行 をクリックします。
プロンプトダイアログボックスで、OK をクリックします。
警告Web サーバーを再起動するとサービスが中断されます。このデプロイメントはオフピーク時に実行することを推奨します。

Nginx を手動で再起動するには、次のコマンドを使用できます:
systemctl restart nginx.serviceNginx を再起動した後、curl コマンドを使用して Nginx SSL 接続をテストできます。コマンドの形式は
curl -v https://<your_domain_name>です。
ステップ 4:デプロイメントタスクのステータス確認
クラウドサーバーのデプロイ ページで、作成したタスクを見つけます。タスクのステータス が デプロイ成功 の場合、証明書がクラウドサーバーに正常にアップロードされたことを意味します。

ステップ 5:SSL 証明書の検証
デプロイメントタスクが成功しても、証明書が Web サーバーで有効になっているとは限りません。ドメインにアクセスしてステータスを検証する必要があります。
Web ブラウザーで HTTPS を介してドメインにアクセスします。例:
https://yourdomain。yourdomainを実際のドメインに置き換えてください。ブラウザーのアドレスバーに鍵のアイコンが表示されれば、証明書は正常にデプロイされています。アクセスエラーが発生した場合や鍵のアイコンが表示されない場合は、ブラウザーのキャッシュをクリアするか、シークレット (プライバシー) モードで再試行してください。

バージョン 117 以降、Chrome のアドレスバーの
アイコンは新しい
アイコンに置き換えられました。このアイコンをクリックすると、鍵の情報を表示できます。
手動デプロイメント (証明書更新向け)
この方法を使用して、クラウドサーバー (ECS または Simple Application Server) 上の既存の証明書を更新します。古い証明書ファイルを上書きすることで、更新および置換プロセスを簡素化します。この方法は初回デプロイメント用ではありません。
前提条件
クラウドサーバータイプ: Alibaba Cloud サーバーのみ (Simple Application Server と ECS)。
Web サーバー:PEM または CRT 証明書ファイルを直接使用する Nginx や Apache などの Web サーバーをサポートします。IIS はサポートされていません。
サーバー権限:
rootアカウントまたはsudo権限を持つアカウントが必要です。
ステップ 1:SSL 証明書のデプロイ
Certificate Management Service コンソールにログインします。
左側のナビゲーションウィンドウで、を選択します。
クラウドサーバーのデプロイ ページで、タスクの作成 をクリックします。
基本設定 ページで、タスク名 を入力し、次へ をクリックします。
証明書の選択 ページで、証明書タイプ を選択し、証明書の関連付け を選択し、次に 次へ をクリックします。
説明Private CA サービスが発行した証明書は、アップロードされた証明書の管理 タブに同期されます。
リソースの選択 ページで、クラウドプロダクトグループ を選択し、ターゲットインスタンスにチェックを入れ、次へ をクリックします。このページを初めて開くと、システムはお客様の Alibaba Cloud アカウント配下にあるすべての対象クラウドサーバーインスタンス (つまり、Web アプリケーションがデプロイされているクラウドサーバー) を自動的に検出し、一覧表示します。
説明リソースが表示されない場合は、左上の総リソースエリアでクラウドプロダクトリソースの同期をクリックして手動で同期します。同期時間はリソースの数によって異なります。プロセスが完了するまでお待ちください。
デプロイ設定 ウィザードで、次の表に従ってパラメーターを設定し、OK をクリックします。
重要証明書のパス と 秘密鍵のパス は、Web アプリケーションで設定したパスと一致している必要があります。そうでない場合、証明書は有効になりません。
次の図は、参照用のクラウドサーバー上の Nginx 証明書ファイルパスの例を示しています:

パラメーター
説明
例
証明書のパス
クラウドサーバー上の証明書ファイルの絶対パス。
Linux の例:/ssl/cert.pem
Windows の例:c:\ssl\cert.pem
秘密鍵のパス
証明書の秘密鍵ファイルが保存されているクラウドサーバー上の絶対パス。
Linux の例:/ssl/cert.key
Windows の例:c:\ssl\cert.key
証明書チェーンのパス
証明書チェーンファイルが保存されているクラウドサーバー上の絶対パス。
説明Web アプリケーションにすでに証明書チェーンファイルが設定されている場合は、ここに対応するパスを入力してください。
Linux の例:/ssl/cert.cer
Windows の例:c:\ssl\cert.cer
コマンドを再読み込み
指定した場合、このコマンドはデプロイメント後に実行され、新しい証明書が適用されます。
重要Web アプリケーションの再起動に失敗した場合は、対応するクラウドサーバーに移動して手動で操作を実行してください。
Nginx 設定をグレースフルに再読み込みするコマンドは
sudo nginx -s reloadです。Apache サービスを再起動するコマンドは
sudo systemctl restart httpdです。
ダイアログボックスで、OK をクリックします。
再起動コマンドが設定されていない場合、プロンプトが表示されます。OKをクリックした後、対応するクラウドサーバーにログインし、Web アプリケーションサービスを手動で再起動して、証明書がすぐに有効になるようにします。

再起動コマンドが設定されている場合、次のプロンプトが表示されます。リスクを確認した後、OK をクリックします。デプロイメント タスクの完了後、再起動コマンドが実行されてサーバーが再起動し、証明書がすぐに有効になります。

ステップ 2:デプロイメントタスクのステータス確認
クラウドサーバーのデプロイ ページで、作成したタスクを見つけます。タスクのステータス が デプロイ成功 の場合、証明書はクラウドサーバーで正常に更新されています。
ステップ 3:SSL 証明書の検証
Web ブラウザーで HTTPS を介してドメインにアクセスします。例:
https://yourdomain。yourdomainを実際のドメインに置き換えてください。ブラウザーのアドレスバーに鍵のアイコンが表示されれば、証明書は正常にデプロイされています。アクセスエラーが発生した場合や鍵のアイコンが表示されない場合は、ブラウザーのキャッシュをクリアするか、シークレット (プライバシー) モードで再試行してください。

バージョン 117 以降、Chrome のアドレスバーの
アイコンは新しい
アイコンに置き換えられました。このアイコンをクリックすると、鍵の情報を表示できます。
それでも問題が解決しない場合は、トラブルシューティングのために「よくある質問」をご参照ください。
クォータと制限事項
デプロイメント料金:
正式に発行された証明書のデプロイメントは無料であり、デプロイメントクォータを消費しません。
自己アップロード証明書をデプロイすると、デプロイメントクォータが消費されます。 必要に応じてデプロイパッケージをご購入ください。 具体的な料金については、購入ページをご参照ください。 デプロイが失敗した場合、対応するデプロイメントクォータは返金されます。
クォータ制限:
各デプロイメントタスクは、1 つの証明書を 1 つのクラウドサーバーインスタンスにデプロイすることをサポートします。複数のインスタンスに証明書をデプロイするには、複数のタスクを作成してください。
公開
サービス中断リスク:どちらのデプロイメント方法も、最終的に Web サーバー (Nginx や Apache など) の再起動が必要になる場合があり、これにより短時間サービスが中断されます。デプロイメント操作はオフピーク時に実行することを強く推奨します。
グレースフルリロード:Web サーバーがグレースフルリロード (例:Nginx) をサポートしている場合、手動デプロイメント方法の [再起動コマンド] フィールドで
restartの代わりにnginx -s reloadまたはsystemctl reload nginxを使用することを推奨します。これにより、既存の接続への影響を最小限に抑えることができます。モニタリングとアラート:証明書をデプロイした後、ドメインのドメイン名モニタリングを有効にすることを推奨します。Alibaba Cloud は証明書の有効性を自動的に検出し、有効期限が切れる前にリマインダーを送信するため、サービスの中断を避けるために時間内に更新するのに役立ちます。詳細については、「パブリックドメイン名モニタリングの購入と有効化」をご参照ください。
よくある質問
デプロイ後に証明書が有効にならない
一般的な原因は次のとおりです:
サーバーのセキュリティグループまたはファイアウォールでポート 443 が開かれていない。
アクセスしているドメインが、証明書の ドメイン名のバインド に含まれていません。
デプロイメントタスクのタスクのステータスが異常です。タスク詳細ページに移動し、失敗の原因を見るをクリックします。提供された情報に基づいて関連する構成を更新し、再試行します。
さらなるトラブルシューティングについては、「ブラウザーのエラーメッセージに基づく証明書デプロイの問題解決」および「SSL 証明書デプロイのトラブルシューティングガイド」をご参照ください。
デプロイ中に「the cloud Assistant not install or run」というエラーが表示された場合の対処法

原因:ECS インスタンスにクラウドアシスタントがインストールされていない、またはそのステータスが異常です。
ソリューション 1:
ECS コンソール - ECS クラウドアシスタントに移動します。
ターゲットサーバーを見つけ、クラウドアシスタントのステータスを確認します。
インストールされていない場合は、[インストール] をクリックして自動的にインストールできます。
ステータスが異常な場合は、「クラウドアシスタントの異常なステータスのトラブルシューティング」で解決策をご参照ください。
クラウドアシスタントのステータスが正常に戻った後、Certificate Management Service コンソールでクラウドサーバーのデプロイメントタスクを再度作成します。
ソリューション 2:
「Nginx または Tengine サーバー (Linux) への SSL 証明書のインストール」を参照して、ECS サーバーに手動で証明書をインストールします。