SSL-VPN用証明書登録(V2サービス/自己署名証明書利用)

SSL-VPN用証明書をIaaS 鍵管理機能に登録する手順を解説します。

  1. CA証明書を登録します。
    $ CA_NAME=ca(固定値)
    注:

    CA_NAMEは上記の固定値を指定してください。

    固定値が指定されていない場合、SSL-VPNコネクションの作成時にエラーになります。

    $ EXPIRATION="<CA証明書の有効期限(任意)>"
    注:

    <CA証明書の有効期限(任意)>はYYYY-MM-DDThh:mm:ssの形式で指定します。

    メタ文字を含むため、ダブルクォーテーションをつけてください。

    $ CONTENT_TYPE=text/plain
  2. 次の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>"}
  3. サーバ証明書を登録します。
    $ SV_CERT_NAME=server_certificate(固定値)
    注:

    SV_CERT_NAMEは上記の固定値を指定してください。

    固定値が指定されていない場合、SSL-VPNコネクションの作成時にエラーになります。

    $ EXPIRATION="<サーバ証明書の有効期限(任意)>"
    注:

    <サーバ証明書の有効期限(任意)>はYYYY-MM-DDThh:mm:ssの形式で指定します。

    サーバ証明書の有効期限はデフォルトで証明書作成時の10年後の日付が設定されるため、有効期限は10年以内の日付を指定してください。

    メタ文字を含むため、ダブルクォーテーションをつけてください。

    $ CONTENT_TYPE=text/plain
  4. 次の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>"}
  5. サーバ証明書用秘密鍵を登録します。
    $ SV_KEY_NAME=server_key(固定値)
    注:

    SV_KEY_NAMEは上記の固定値を指定してください。

    固定値が指定されていない場合、SSL-VPNコネクションの作成時にエラーになります。

    $ EXPIRATION="<サーバ証明書用秘密鍵の有効期限(任意)>"
    注:

    <サーバ証明書用秘密鍵の有効期限(任意)>はYYYY-MM-DDThh:mm:ssの形式で指定します。

    サーバ証明書用秘密鍵の有効期限はデフォルトで秘密鍵作成時の10年後の日付が設定されるため、有効期限は10年以内の日付を指定してください。

    メタ文字を含むため、ダブルクォーテーションをつけてください。

    $ CONTENT_TYPE=text/plain
  6. 次の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>"}
  7. DH鍵を登録します。
    $ DH_NAME=dh(固定値)
    注:

    DH_NAMEは上記の固定値を指定してください。

    固定値が指定されていない場合、SSL-VPNコネクションの作成時にエラーになります。

    $ EXPIRATION="<DH鍵の有効期限(任意)>"
    注:

    <DH鍵の有効期限(任意)>はYYYY-MM-DDThh:mm:ssの形式で指定します。

    メタ文字を含むため、ダブルクォーテーションをつけてください。

    $ CONTENT_TYPE=text/plain
  8. 次の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>"}
  9. 本手順で登録した証明書を確認するため、以下の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
        }
      ]
    }
注: 本手順で登録した証明書の”secret_ref”の値は「SSL-VPNコネクションの作成(V2サービス/自己署名証明書利用)」に使用するため、控えておいてください。