クラウドサーバーの SSL 証明書を手動で管理することは、複雑でエラーが発生しやすく、繰り返し更新手順が必要になる場合があります。これらの課題に対処するため、Certificate Management Service は自動デプロイ機能を提供しています。ワンクリックで指定の信頼済み ECS インスタンスに証明書をデプロイできます。また、証明書がすでに設定されている Elastic Compute Service (ECS) および Simple Application Server インスタンス上の証明書を自動的に更新することもできます。これにより、デプロイ効率が向上し、設定リスクが低減します。
デプロイ方法の選択
サーバーの種類とデプロイシナリオに基づいて方法を選択します。
機能 | 方法 1:ワンクリックデプロイ (初回デプロイ用) | 方法 2:手動デプロイ (証明書の更新用) |
コアメカニズム | 完全自動。秘密鍵がインスタンスから出ることがなく、PKCS#11 インターフェイスを介してハードウェア信頼済みモジュールと通信するため、高いセキュリティが確保されます。 | 半自動。証明書ファイルをサーバー上の指定されたパスにアップロードして、古いファイルを上書きします。 |
サポート対象サーバー | 特定の信頼済み Elastic Compute Service (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 証明書デプロイソリューションの選択」をご参照のうえ、別のデプロイソリューションを選択してください。
方法 1:ワンクリックデプロイ (信頼済み 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 インスタンス] タブで、対象の ECS サーバーを探し、[クラウドアシスタントのステータス] 列でそのステータスを確認します。
説明クラウドアシスタントがインストールされていない、またはステータスが異常な場合は、「クラウドアシスタントのステータス確認と異常ステータスのトラブルシューティング」をご参照ください。
ステップ 2:ECS インスタンスでの Nginx Web アプリケーションサーバーの設定
初回デプロイの場合、Nginx が PKCS#11 インターフェイスを介して信頼済みモジュールから秘密鍵を呼び出せるように、Nginx 設定ファイルを変更する必要があります。このステップは、その後の更新では不要です。
Alibaba Cloud Linux 3.x イメージ
このトピックでは、Nginx 1.20.1 を例として使用します。/etc/nginx/ は、yum を使用してインストールされた Nginx のデフォルトのインストールディレクトリです。このディレクトリを変更した場合は、パスを適宜調整してください。
Nginx のバージョンを確認します。
現在、サポートされているのは Nginx バージョン 1.18.0-2.1.al8 から 1.20.1-1.0.5.al8 (このバージョンは含まない) までです。
重要ECS インスタンスに 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 を例として使用します。/etc/nginx/ は、apt を使用してインストールされた 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 コンソールからの証明書のデプロイ
Certificate Management Service コンソールにログインします。
左側のナビゲーションウィンドウで、を選択します。
[クラウドサーバーへのデプロイメント] ページで、タスクの作成 をクリックし、次の手順に従って SSL 証明書をデプロイします。
基本設定 ページで、カスタムタスク名を入力し、次へ をクリックします。
証明書の選択 ページで、証明書タイプとクラウドサーバーに関連付けられた SSL 証明書を選択し、次へ をクリックします。
各デプロイタスクでは 1 つの証明書しかデプロイできません。複数の証明書をデプロイするには、複数のデプロイタスクを作成する必要があります。
リソースの選択 ページで、ワンクリックデプロイメントに対応した ECS インスタンスを選択し、次へ をクリックします。

システムは、お客様の Alibaba Cloud アカウント配下にある、対象のすべての ECS インスタンスを自動的に検出して取得します。リソースが表示されない場合は、左上隅の [合計リソース] エリアにある [クラウドリソースの同期] をクリックします。同期時間は、お客様のクラウドリソースの数によって異なります。
リストにインスタンスが多数ある場合は、[すべてのタイプ] ドロップダウンリストから [クイックデプロイメント/手動デプロイメント] を選択して、サポートされているインスタンスでリストをすばやく絞り込むことができます。
[クイックデプロイ] タブで、デプロイメント環境の要件が満たされていることを確認します。満たされている場合は、[先行する操作が完了したことを確認します。] を選択し、[デプロイを続行] をクリックします。
表示されるダイアログボックスで、[OK] をクリックします。
警告Web アプリケーションサーバーを再起動すると、ビジネスに影響します。オフピーク時にデプロイを実行することを推奨します。

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

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

バージョン 117 以降、Chrome のアドレスバーの
アイコンは新しい
アイコンに置き換えられました。このアイコンをクリックすると、ロック情報を表示できます。
方法 2:手動デプロイ (既存の証明書の更新)
この方法は、すでに証明書が設定されているクラウドサーバー (ECS または Simple Application Server) 上の証明書を更新するために使用します。古い証明書ファイルを上書きすることで、更新と置換のプロセスを簡素化します。この方法は、初回デプロイを目的としたものではありません。
適用範囲
サーバータイプ:この方法は、Simple Application Server や Elastic Compute Service (ECS) などの Alibaba Cloud サーバーにのみ適用されます。
Web サーバー:PEM または CRT 形式の証明書ファイルを直接参照する Nginx や Apache などの Web サーバーのみをサポートします。IIS はサポートされていません。
サーバー権限:
rootアカウントまたはsudo権限を持つアカウントが必要です。
ステップ 1:SSL 証明書のデプロイ
Log on to the 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 アプリケーションが再起動されるか、Web アプリケーションの設定ファイルが再読み込みされ、証明書が有効になります。
重要Web アプリケーションの再起動に失敗した場合は、対応するクラウドサーバーに移動して操作を実行してください。
Nginx 設定ファイルを再読み込みするコマンドは
sudo nginx -s reloadです。Apache サービスを再起動するコマンドは
sudo systemctl restart httpdです。
表示されるダイアログボックスで、[OK] をクリックします。
再起動コマンドを設定していない場合、次のメッセージが表示されます。[OK] をクリックします。その後、証明書を有効にするには、クラウドサーバーにログインし、手動で Web アプリケーションサービスを再起動する必要があります。

再起動コマンドを設定すると、次のメッセージが表示されます。リスクを確認し、[OK] をクリックします。デプロイメントタスクが完了すると、再起動コマンドが実行されて Web アプリケーションサービスが再起動され、証明書はすぐに有効になります。

ステップ 2:デプロイタスクのステータスの確認
クラウドサーバーのデプロイ ページで、作成したタスクを探します。タスクのステータス が デプロイ成功 の場合、証明書はクラウドサーバー上で正常に更新されています。

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

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

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