SSL-VPN用証明書登録(V2サービス/自己署名証明書利用)
SSL-VPN用証明書をIaaS 鍵管理機能に登録する手順を解説します。
-
CA証明書を登録します。
$ CA_NAME=ca(固定値)
注:CA_NAMEは上記の固定値を指定してください。
固定値が指定されていない場合、SSL-VPNコネクションの作成時にエラーになります。
$ EXPIRATION="<CA証明書の有効期限(任意)>"
注:<CA証明書の有効期限(任意)>はYYYY-MM-DDThh:mm:ssの形式で指定します。
メタ文字を含むため、ダブルクォーテーションをつけてください。
$ CONTENT_TYPE=text/plain
-
次のAPIを実行します。
$ curl -X POST -sS -i $KEYMANAGEMENT/v1/$PROJECT_ID/secrets \ -H "X-Auth-Token:$OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d '{"name":"'$CA_NAME'", "expiration": "'$EXPIRATION'", "payload": "<CA証明書の内容>", "payload_content_type": "'$CONTENT_TYPE'" }'
注:<CA証明書の内容>は以下の手順で設定します。
- catでCA証明書の情報を表示します。
- 表示した情報の「-----BEGIN CERTIFICATE-----」から「-----END CERTIFICATE-----」までをコピーします。
- テキストエディタなどで改行コードをLF(\n)に置換します。
- 置換した情報を<CA証明書の内容>として使用します。
※置換した場合の証明書の内容については付録の「4.1.1 証明書登録におけるpayloadの指定方法」を参照して下さい。
以下のように、レスポンスコード201が出力された場合、登録は完了です
HTTP/1.1 100 Continue HTTP/1.1 201 Created X-Fcx-Endpoint-Request: EXECUTED_REQ000256040_201 Location: http://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/<プロジェクトID>/secrets/<CA証明書ID> Content-Type: application/json;charset=UTF-8 Content-Length: 155 Date: Www, DD MMM yyyy hh:mm:ss GMT {"secret_ref": "https://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/v1/<プロジェクトID>/secrets/<CA証明書ID>"}
-
サーバ証明書を登録します。
$ SV_CERT_NAME=server_certificate(固定値)
注:SV_CERT_NAMEは上記の固定値を指定してください。
固定値が指定されていない場合、SSL-VPNコネクションの作成時にエラーになります。
$ EXPIRATION="<サーバ証明書の有効期限(任意)>"
注:<サーバ証明書の有効期限(任意)>はYYYY-MM-DDThh:mm:ssの形式で指定します。
サーバ証明書の有効期限はデフォルトで証明書作成時の10年後の日付が設定されるため、有効期限は10年以内の日付を指定してください。
メタ文字を含むため、ダブルクォーテーションをつけてください。
$ CONTENT_TYPE=text/plain
-
次のAPIを実行します。
$ curl -X POST -sS -i $KEYMANAGEMENT/v1/$PROJECT_ID/secrets \ -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d '{"name":"'$SV_CERT_NAME'", "expiration": "'$EXPIRATION'", "payload": "<サーバ証明書の内容>", "payload_content_type": "'$CONTENT_TYPE'" }'
注:<サーバ証明書の内容>は以下の手順で設定します。
- catでサーバ証明書の情報を表示します。
- 取得した情報の「-----BEGIN CERTIFICATE-----」から「-----END CERTIFICATE-----」までをコピーします。
- テキストエディタなどで改行コードをLF(\n)に置換します。
- 置換した情報を<サーバ証明書の内容>として使用します。
※置換した場合の証明書の内容については付録の「4.1.1 証明書登録におけるpayloadの指定方法」を参照して下さい。
以下のように、レスポンスコード201が出力された場合、登録は完了です。
HTTP/1.1 100 Continue HTTP/1.1 201 Created X-Fcx-Endpoint-Request: EXECUTED_REQ000225866_201 Location: http://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/<プロジェクトID>/secrets/<サーバ証明書ID> Content-Type: application/json;charset=UTF-8 Content-Length: 155 Date: Www, DD MMM yyyy hh:mm:ss GMT {"secret_ref": "https://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/v1/<プロジェクトID>/secrets/<サーバ証明書ID>"}
-
サーバ証明書用秘密鍵を登録します。
$ SV_KEY_NAME=server_key(固定値)
注:SV_KEY_NAMEは上記の固定値を指定してください。
固定値が指定されていない場合、SSL-VPNコネクションの作成時にエラーになります。
$ EXPIRATION="<サーバ証明書用秘密鍵の有効期限(任意)>"
注:<サーバ証明書用秘密鍵の有効期限(任意)>はYYYY-MM-DDThh:mm:ssの形式で指定します。
サーバ証明書用秘密鍵の有効期限はデフォルトで秘密鍵作成時の10年後の日付が設定されるため、有効期限は10年以内の日付を指定してください。
メタ文字を含むため、ダブルクォーテーションをつけてください。
$ CONTENT_TYPE=text/plain
-
次のAPIを実行します。
$ curl -X POST -sS -i $KEYMANAGEMENT/v1/$PROJECT_ID/secrets \ -H "X-Auth-Token:$OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d '{"name":"'$SV_KEY_NAME'", "expiration": "'$EXPIRATION'", "payload":"<サーバ証明書用秘密鍵の内容>","payload_content_type": "'$CONTENT_TYPE'" }'
注:<サーバ証明書用秘密鍵の内容>は以下の手順で設定します。
- catでサーバ証明書用秘密鍵の情報を表示します。
- 取得した情報の「-----BEGIN PRIVATE KEY-----」から「-----END PRIVATE KEY-----」までをコピーします。
- テキストエディタなどで改行コードをLF(\n)に置換します。
- 置換した情報を<サーバ用秘密鍵の内容>として使用します。
※置換した場合の証明書の内容については付録の「4.1.1 証明書登録におけるpayloadの指定方法」を参照して下さい。
以下のように、レスポンスコード201が出力された場合、登録は完了です。
HTTP/1.1 100 Continue HTTP/1.1 201 Created X-Fcx-Endpoint-Request: EXECUTED_REQ000257600_201 Location: http://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/<プロジェクトID>/secrets/<サーバ証明書用秘密鍵ID> Content-Type: application/json;charset=UTF-8 Content-Length: 155 Date: Www, DD MMM yyyy hh:mm:ss GMT {"secret_ref": "https://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/v1/<プロジェクトID>/secrets/<サーバ証明書用秘密鍵ID>"}
-
DH鍵を登録します。
$ DH_NAME=dh(固定値)
注:DH_NAMEは上記の固定値を指定してください。
固定値が指定されていない場合、SSL-VPNコネクションの作成時にエラーになります。
$ EXPIRATION="<DH鍵の有効期限(任意)>"
注:<DH鍵の有効期限(任意)>はYYYY-MM-DDThh:mm:ssの形式で指定します。
メタ文字を含むため、ダブルクォーテーションをつけてください。
$ CONTENT_TYPE=text/plain
-
次のAPIを実行します。
$ curl -X POST -sS -i $KEYMANAGEMENT/v1/$PROJECT_ID/secrets \ -H "X-Auth-Token:$OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d '{"name":"'$DH_NAME'", "expiration": "'$EXPIRATION'", "payload":"<DH鍵の内容>", "payload_content_type": "'$CONTENT_TYPE'" }'
注:<DH鍵の内容>は以下の手順で設定します。
- catでDH鍵の情報を表示します。
- 取得した情報の「-----BEGIN DH PARAMETERS-----」から「-----END DH PARAMETERS-----」までをコピーします。
- テキストエディタなどで改行コードをLF(\n)に置換します。
- 置換した情報を<DH鍵の内容>として使用します。
※置換した場合の証明書の内容については付録の「4.1.1 証明書登録におけるpayloadの指定方法」を参照して下さい。
以下のように、レスポンスコード201が出力された場合、登録は完了です。
HTTP/1.1 100 Continue HTTP/1.1 201 Created X-Fcx-Endpoint-Request: EXECUTED_REQ000229580_201 Location: http://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/<プロジェクトID>/secrets/<DH鍵ID> Content-Type: application/json;charset=UTF-8 Content-Length: 155 Date: Www, DD MMM yyyy hh:mm:ss GMT {"secret_ref": "https://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/v1/<プロジェクトID>/secrets/<DH鍵ID>"}
-
本手順で登録した証明書を確認するため、以下のAPIを実行します。
$ curl -X GET -sS $KEYMANAGEMENT/v1/$PROJECT_ID/secrets \ -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq .
以下のように、登録した証明書が出力された場合、作成は完了です。
{ "total": 4, "secrets": [ { "expiration": "<CA証明書の有効期限>", "bit_length": null, "status": "ACTIVE", "secret_ref": "https://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/v1/<プロジェクトID>/secrets/<CA証明書ID>", "updated": "YYYY-MM-DDThh:mm:ss.SSS", "name": "ca", "algorithm": null, "created": "YYYY-MM-DDThh:mm:ss.SSS", "content_types": { "default": "text/plain" }, "mode": null }, { "expiration": "<サーバ証明書の有効期限>", "bit_length": null, "status": "ACTIVE", "secret_ref": "https://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/v1/<プロジェクトID>/secrets/<サーバ証明書ID>", "updated": "YYYY-MM-DDThh:mm:ss.SSS", "name": "server_certificate", "algorithm": null, "created": "YYYY-MM-DDThh:mm:ss.SSS", "content_types": { "default": "text/plain" }, "mode": null }, { "expiration": "<サーバ証明書用秘密鍵の有効期限(任意)>", "bit_length": null, "status": "ACTIVE", "secret_ref": "https://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/v1/<プロジェクトID>/secrets/<サーバ証明書用秘密鍵ID>", "updated": "YYYY-MM-DDThh:mm:ss.SSS", "name": "server_key", "algorithm": null, "created": "YYYY-MM-DDThh:mm:ss.SSS", "content_types": { "default": "text/plain" }, "mode": null }, { "expiration": "<DH鍵の有効期限(任意)>", "bit_length": null, "status": "ACTIVE", "secret_ref": "https://keymanagement.<リージョン識別子>.cloud.global.fujitsu.com/v1/<プロジェクトID>/secrets/<DH鍵ID>", "updated": "YYYY-MM-DDThh:mm:ss.SSS", "name": "dh", "algorithm": null, "created": "YYYY-MM-DDThh:mm:ss.SSS", "content_types": { "default": "text/plain" }, "mode": null } ] }