このトピックでは、ビジネスが Linux システムにデプロイされている場合に、GVSM を使用して SSL オフロードを実装する方法について説明します。
ステップ 1: 準備
以下のソフトウェア リソースを準備します。
リソース タイプ
説明
入手方法
HSM インスタンス管理ツール
HSM インスタンスの構成に使用されます。
クラウド ハードウェア セキュリティ モジュール (HSM) 管理コンソール にログインし、ソフトウェア パッケージをダウンロードします。

ソフトウェア パッケージの
\Alibaba Cloud HSM-GVSM ソフトウェア パッケージ XXXX\管理ツールとユーザー マニュアルディレクトリで、HSM インスタンス管理ツールとユーザー マニュアルを入手します。
TASSL エンジン
GVSM の呼び出しをサポートする TASSL エンジン ファイル パッケージ。中国の暗号アルゴリズムと国際的なアルゴリズムの両方をサポートしています。
Alibaba Cloud テクニカルサポートにお問い合わせください。
Nginx プロキシ
TASSL エンジンで使用される Nginx サービス パッケージ。
Alibaba Cloud テクニカルサポートにお問い合わせください。
以下のクラウド プロダクト リソースをデプロイします。
リソース名
仕様
説明
ECS1
64 ビット Windows 10 システム
GVSM の管理と構成に使用され、HSM インスタンスと同じ VPC にあります。購入方法については、「ECS インスタンスを作成する」をご参照ください。
GVSM にアクセスするための管理ポートは 8020 です。
ECS2
64 ビット Linux システム
ユーザーの業務システム、TASSL、および Nginx をデプロイするために使用され、HSM インスタンスと同じ VPC にあります。
説明ECS2 は GVSM サービスポート 8019 にアクセスします。
ECS2 の SSL ポートサービスを設定する必要があります。
GVSM
汎用仮想サーバー HSM (GVSM)
SSL 証明書のオフロードに関連する暗号操作を実行するために使用されます。
ステップ 2: ECS1 で HSM インスタンス管理ツールを構成する
HSM 管理ツールは、Windows オペレーティングシステム上でのみ動作します。
ECS1 インスタンスにログインします。詳細については、「接続方法の概要」をご参照ください。
ECS1 に HSM インスタンス管理ツールをインストールし、ローカル端末から ECS インスタンスにリモート ログインして、ECS インスタンス上で HSM インスタンス管理ツールを操作します。
説明ローカル端末に HSM クライアント管理ツールをインストールし、VPN または Express Connect 回線 を介してローカル端末を HSM インスタンスが配置されている VPC ネットワークに接続することもできます。
HSM インスタンスを初期化します。
HSM を既に初期化している場合は、この手順をスキップしてください。
方法 1: クラウド HSM コンソールでのワンクリック初期化
重要ビジネスで UKEY が不要な場合は、ワンクリック初期化を使用できます。それ以外の場合は、初期化に HSM インスタンス管理ツールを使用します。
クラウド ハードウェア セキュリティ モジュール コンソールの セキュリティ監査 ページに移動します。上部のナビゲーションバーで、リージョンを選択します。
ターゲット HSM を見つけ、[アクション] 列の アクション をクリックします。
Initialize Instance ダイアログボックスで、Ok をクリックします。
初期化には約 1 ~ 5 分かかります。しばらくお待ちください。初期化が完了すると、ステータスは 初期化 と表示されます。
方法 2: HSM インスタンス管理ツールを使用して HSM インスタンスを初期化する。
具体的な操作については、ソフトウェア パッケージに含まれているユーザー マニュアルの「初期初期化」の章を参照してください。
ステップ 3: ECS2 に TASSL をデプロイする
ECS2 インスタンスにログインします。詳細については、「接続方法の概要」をご参照ください。
取得した TASSL エンジン ファイル パッケージ
nginx_tassl_tasshsmXX.XX.XXを ECS2 にアップロードして展開します。たとえば、/home/tassディレクトリに展開します。説明ファイルパッケージには通常、Nginx サービスパッケージも含まれています。Nginx サービスパッケージも /home/tass ディレクトリに展開してください。
tassl.tgz が
/home/tassディレクトリに展開されていない場合は、2 つの環境変数を構成する必要があります。1 つはエンジン ライブラリを見つけるため、もう 1 つはエンジン ライブラリ構成ファイル用です。次に例を示します。export OPENSSL_ENGINES=/home/other/tassl/lib/engines-1.1/ export TASSL_ENGINE_CFG=/home/other/tassl/cfg/tasshsm_engine.iniTASSL エンジンがアクセスする GVSM 情報を構成します。
変更します
/home/tass/tassl/cfg/tasshsm_engine.iniファイルを、変更することで ファイルを編集し、[HSM_IP] および と [HSM_PORT] GVSM の IP アドレスとサービスポート番号へ を GVSM の IP アドレスとサービスポート番号に変更します。#GVSM IP アドレス HSM_IP = 172.XX.XX.183 #8019 に固定 HSM_PORT = 8019GVSM の IP アドレスは、コンソールの [IP アドレス] 列に表示されます。

ステップ 4: SSL 証明書をリクエストして発行する
必要に応じて、RSA アルゴリズムまたは SM2 アルゴリズムサーバーの証明書リクエスト ファイル (CSR または P10 ファイルとも呼ばれます) を生成し、証明書を発行できます。
RSA アルゴリズム サーバー証明書 (単一証明書) のリクエストと発行
CSR 証明書リクエスト ファイルを生成します。
HSM インスタンス管理ツールにログインします。
ポートはデフォルトで 8020 であり、変更する必要はありません。
新しいキーを生成します。
[キー管理] タブをクリックし、[非対称キー管理] をクリックします。
[非対称キー管理] ダイアログボックスで、[新しいキーの生成] をクリックします。
[非対称キーの生成] ダイアログボックスで、[アルゴリズム識別子] を [RSA] に設定し、[キーの長さ] を [2048] に設定し、[指数] を [65537] に設定し、[キー インデックス] をカスタマイズして、[生成] をクリックします。
GVSM は新しい非対称キーを生成し、公開鍵プレーンテキストと秘密鍵暗号文を表示します。
証明書リクエスト ファイルを生成します。
方法 1: HSM 管理ツールを使用して生成する
[非対称キー管理] ダイアログボックスで、[RSA リクエストの生成] をクリックします。
[RSA の生成] ダイアログボックスで、有効な [サブジェクト] を入力し、[内部インデックスを使用するかどうか] を選択し、[キー インデックス] を入力して、[OK] をクリックします。

P10 リクエストを証明書リクエスト ファイルとしてコピーして保存します。ファイル名として S_RSA_HSM.csr を使用します。
方法 2: TASSL コンパニオン スクリプトを使用して生成する
ECS2 の
/home/tass/tassl/cert/rsaディレクトリに移動し、証明書リクエスト ファイル S_RSA_HSM.csr を生成します。[tass@localhost rsa]#./gen_rsa_csr_with_hsm -r S_RSA_HSM.csr -k ./S_RSA_HSM.key Please enter DN: /C=CN/ST=BJ/L=HaiDian/O=JNTA/OU=BSRC of TASS/CN=rsa_commoname/ Please enter key length[1024 - 2048]:2048 Please select digest algorithm: 1)SHA1 2)SHA224 3)SHA256 4)SHA384 5)SHA512 Please enter: 3 Please enter the index number for the HSM to store the private key: 15
証明書を発行します。
重要テスト段階では、自己署名証明書を使用することをお勧めします。本番環境では、CA センターまたは Alibaba Cloud 証明書サービスによって発行された証明書を使用することをお勧めします。
この記事では、自己署名証明書を例として使用しています。Alibaba Cloud 証明書サービスによる証明書の発行に関する具体的な操作については、「証明書申請を送信する」をご参照ください。
ECS2 の
/home/tass/tassl/cert/rsaディレクトリに移動します。S_RSA_HSM.crtを発行します。./sign_cert.sh S_RSA_HSM.csr S_RSA_HSM.crt
SM2 アルゴリズム サーバー証明書 (デュアル証明書) のリクエストと発行
CSR 証明書リクエスト ファイルを生成します。
HSM インスタンス管理ツールにログインします。
ポートはデフォルトで 8020 であり、変更する必要はありません。
署名キーと暗号キーを生成します。
[キー管理] タブをクリックし、[非対称キー管理] をクリックします。
[非対称キー管理] ダイアログボックスで、[新しいキーの生成] をクリックします。
[非対称キーの生成] ダイアログボックスで、[アルゴリズム識別子] を [SM2] に設定し、[キー インデックス番号] を入力して、[生成] をクリックします。
署名キーのインデックス番号には 15 を、暗号キーのインデックス番号には 16 を使用します。
GVSM は新しい非対称キーを生成し、公開鍵プレーンテキストと秘密鍵暗号文を出力します。
署名証明書リクエスト ファイルと暗号証明書リクエスト ファイルを生成します。
方法 1: HSM インスタンス管理ツールを使用して生成する
[非対称キー管理] ダイアログボックスで、[SM2/ECC リクエストの生成] をクリックします。
[ECC/SM2 リクエストの生成] ダイアログボックスで、[曲線識別子] を [SM2] として選択し、[アルゴリズム識別子] を [SM3WithSM2] として選択し、[サブジェクト] と [キー インデックス] を入力して、[OK] をクリックします。署名証明書リクエスト ファイルを生成する場合は、キー インデックスに 15 を入力します。暗号証明書リクエスト ファイルを生成する場合は、キー インデックスに 16 を入力します。
P10 リクエストを証明書ファイルとしてコピーして保存します。署名証明書リクエスト ファイル名には
SS_SM2_HSM.csrを、暗号証明書リクエスト ファイル名にはSE_SM2_HSM.csrを使用します。
方法 2: TASSL コンパニオン スクリプトを使用して生成する
ECS2 の
/home/tass/tassl/cert/sm2ディレクトリに移動し、署名証明書リクエスト ファイルと暗号証明書リクエスト ファイルを生成します。署名証明書リクエスト ファイル名にはSS_SM2_HSM.csrを、暗号証明書リクエスト ファイル名にはSE_SM2_HSM.csrを使用します。#証明書リクエスト ファイル SS_SM2_HSM.csr を生成する [tass@localhost rsa]# ./gen_sm2_csr_with_hsm -r SS_SM2_HSM.csr Please enter DN: /C=CN/ST=BJ/L=HaiDian/O=Beijing JNTA Technology LTD./OU=BSRC of TASS/CN=sm2_commoname/ Please enter the index number for the HSM to store the private key: 15 #暗号証明書リクエスト ファイル SE_SM2_HSM.csr を生成する [tass@localhost rsa]# ./gen_sm2_csr_with_hsm -r SE_SM2_HSM.csr Please enter DN: /C=CN/ST=BJ/L=HaiDian/O=Beijing JNTA Technology LTD./OU=BSRC of TASS/CN=sm2_commoname/ Please enter the index number for the HSM to store the private key: 16
証明書を発行します。
重要テスト段階では、自己署名証明書を使用することをお勧めします。本番環境では、CA センターまたは Alibaba Cloud 証明書サービスによって発行された証明書を使用することをお勧めします。
この記事では、自己署名証明書を例として使用しています。Alibaba Cloud 証明書サービスによる証明書の発行に関する具体的な操作については、「証明書申請を送信する」をご参照ください。
ECS2 の
/home/tass/tassl/cert/sm2ディレクトリに移動します。署名証明書ファイル
SS_SM2_HSM.crtと暗号証明書ファイルSE_SM2_HSM.crtを発行します。#署名証明書ファイル SS_SM2_HSM.cr を発行する ./sign_cert_s.sh SS_SM2_HSM.csr SS_SM2_HSM.crt #暗号証明書ファイル SE_SM2_HSM.crt を発行する ./sign_cert_e.sh SE_SM2_HSM.csr SE_SM2_HSM.crt
ステップ 5: Nginx サービスをデプロイする
異なる暗号アルゴリズムを持つサーバー証明書用に Nginx サービスを構成します。
次の表のコード例を参照して、
/home/tass/nginx/conf/nginx.conf構成ファイルの証明書セクションを編集できます。RSA
user root; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; # HTTPS サーバー server{ listen 8020 ssl; server_name localhost; #キー インデックスで tasshsm エンジンを使用する ssl_certificate /home/tass/tassl/cert/rsa/S_RSA_HSM.crt; #RSA 証明書ファイルを構成する ssl_certificate_key engine:tasshsm_rsa:15; #RSA 秘密鍵を格納するインデックス番号を構成する location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }SM2
user root; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; # HTTPS サーバー server { listen 8020 ssl; server_name localhost; #キー インデックスで tasshsm エンジンを使用する ssl_certificate /home/tass/tassl/cert/sm2/SS_SM2_HSM.crt; #署名証明書ファイルを構成する ssl_certificate_key engine:tasshsm_sm2:15; #署名秘密鍵を格納するインデックス番号を構成する ssl_enc_certificate /home/tass/tassl/cert/sm2/SE_SM2_HSM.crt; #暗号証明書ファイルを構成する ssl_enc_certificate_key engine:tasshsm_sm2:16; #暗号秘密鍵を格納するインデックス番号を構成する location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }次のコマンドを実行して、Nginx プロキシを起動します。
cd /home/tass/nginx/sbin ./nginx
ステップ 6: テストと検証
デプロイ後、次の方法を使用して、RSA アルゴリズムと中国暗号 SM2 アルゴリズム サーバー証明書が正常にデプロイされているかどうかを確認できます。
RSA アルゴリズム サーバー証明書 (単一証明書) を使用している場合は、ブラウザから申請したドメイン名 URL に直接アクセスすることで確認できます。

中国暗号 SM2 アルゴリズム サーバー証明書 (デュアル証明書) を使用している場合は、次の操作を実行して確認する必要があります。
クライアントに中国暗号アルゴリズムをサポートするブラウザ (360 セキュア ブラウザなど) をインストールし、サーバーに発行された CA 証明書をブラウザにインポートして、信頼済みとして設定します。
証明書ファイル /home/tass/tassl/cert/sm2/ca.crt の内容を ECS2 から C:\Users\Administrator\AppData\Roaming\360se6\User Data\Default\gmssl\ctl.dat ファイルにコピーします。
ブラウザを再起動します。
C:\Windows\System32\drivers\etc パスにある hosts ファイルを変更して、サーバー アドレスをテスト ドメイン名にポイントするようにします。
ブラウザからテスト ドメイン名にアクセスします。