本文へジャンプします。

ニフクラ ユーザーガイド

クラウド トップ>ユーザーガイド>コンピューティング>リモートアクセスVPNゲートウェイ:Easy-RSAを使った自己署名証明書作成手順
本ページは2023/9/5をもって、新ページhttps://docs.nifcloud.com/cp/guide/ra_vpngw/cert_easy-rsa.htmへ移行しました。 今後は新ページをご参照ください。

リモートアクセスVPNゲートウェイ:Easy-RSAを使った自己署名証明書作成手順

Easy-RSAを使った、自己署名証明書の作成手順です。

構成

リモートアクセスVPNゲートウェイに設定する各種証明書をEasy-RSAで作成します。
本ドキュメントはニフクラ上で作成したUbuntu 22.04 を利用した手順になります。

手順環境
バージョン
Ubuntu 22.04
Easy-RSA 3.0.8
OpenSSL 3.0.2
注意事項
  • 本手順では、事前準備→CA証明書の作成→サーバー証明書の作成→クライアント証明書の作成の順番に実施していくことを想定しております。
    サーバー証明書およびクライアント証明書の署名の際にCA証明書が必要になりますので本手順に沿って順番通り実施してください。
  • 本手順ではサーバー証明書およびクライアント証明書を同一のCA証明書にて署名しています。
    サーバー証明書とクライアント証明書で別のCA証明書で署名したい場合には、作業ディレクトリをわけて実施してください。

事前準備

  1. Easy-RSAのインストール

    # apt-get -y install easy-rsa
    Reading package lists... Done
    Building dependency tree... Done
    
    ...
    
    # ls -l /usr/share/easy-rsa/
    -rwxr-xr-x 1 root root 76923 Nov 19  2021 easyrsa
    -rw-r--r-- 1 root root  4616 Sep 10  2020 openssl-easyrsa.cnf
    -rw-r--r-- 1 root root  8925 Sep 10  2020 vars.example
    drwxr-xr-x 2 root root  4096 Mar 30 11:47 x509-types
  2. 作成環境の準備

    # mkdir /root/cert
    # cd /root/cert
    # ln -s /usr/share/easy-rsa/easyrsa
    # ln -s /usr/share/easy-rsa/openssl-easyrsa.cnf
    # ln -s /usr/share/easy-rsa/vars.example
    # ln -s /usr/share/easy-rsa/x509-types
    # ls -l
    lrwxrwxrwx 1 root root 27 Mar 30 11:56 easyrsa -> /usr/share/easy-rsa/easyrsa
    lrwxrwxrwx 1 root root 39 Mar 30 11:56 openssl-easyrsa.cnf -> /usr/share/easy-rsa/openssl-easyrsa.cnf
    lrwxrwxrwx 1 root root 32 Mar 30 11:56 vars.example -> /usr/share/easy-rsa/vars.example
    lrwxrwxrwx 1 root root 30 Mar 30 11:56 x509-types -> /usr/share/easy-rsa/x509-types
    # export EASYRSA_VARS_FILE="/root/cert/vars"
  3. 各種設定

    各種設定ファイル「vars」を作成します。設定値はサンプルです。お客様環境に合わせて設定してください。

    set_var EASYRSA_DN           "org"
    set_var EASYRSA_REQ_COUNTRY  "JP"
    set_var EASYRSA_REQ_PROVINCE "Kanagawa"
    set_var EASYRSA_REQ_CITY     "kawasaki"
    set_var EASYRSA_REQ_ORG      "NIFCLOUD Private CA"
    set_var EASYRSA_REQ_EMAIL    ""
    set_var EASYRSA_REQ_OU       ""
    set_var EASYRSA_CA_EXPIRE    3650
    set_var EASYRSA_CERT_EXPIRE  3650
    set_var EASYRSA_DIGEST       "sha512"

    ※EASYRSA_DIGESTにはsha256, sha224, sha384, sha512のいずれかを指定してください。

  4. pkiの初期化

    # ./easyrsa init-pki
    
    Note: using Easy-RSA configuration from: /root/cert/vars
    
    init-pki complete; you may now create a CA or requests.
    Your newly created PKI dir is: /root/cert/pki

CA証明書の作成方法

作成するファイル
CA証明書 /root/cert/pki/ca.crt
作成手順
  1. CA証明書の作成

    各種設定にvarsに設定した値がデフォルトとして設定されています。 Common Nameのみ手動で入力してください。

    # ./easyrsa build-ca nopass
    
    Note: using Easy-RSA configuration from: /root/cert/vars
    ...
    
    -----
    Country Name (2 letter code) [JP]: <== 国を指定(Enterキー入力)
    State or Province Name (full name) [Kanagawa]: <== 都道府県を指定(Enterキー入力)
    Locality Name (eg, city) [kawasaki]: <== 市区町村を入力(Enterキー入力)
    Organization Name (eg, company) [NIFCLOUD Private CA]: <== 組織を入力(Enterキー入力)
    Organizational Unit Name (eg, section) []: <== 部門を入力(Enterキー入力)
    Common Name (eg: your user, host, or server name) [Easy-RSA CA]:nifcloud.local <== コモンネームを入力
    Email Address []: <== E-Mail アドレスを入力(Enterキー入力)
    
    CA creation complete and you may now import and sign cert requests.
    Your new CA certificate file for publishing is at:
    /root/cert/pki/ca.crt

サーバー証明書の作成方法

作成するファイル
サーバー証明書 /root/cert/pki/issued/server.nifcloud.crt
サーバー証明書の秘密鍵 /root/cert/pki/private/server.key
作成手順
  1. サーバー証明書署名要求の作成

    各種設定にvarsに設定した値がデフォルトとして設定されています。 Common Nameのみ手動で入力してください。

    # ./easyrsa gen-req server nopass
    Note: using Easy-RSA configuration from: /root/cert/vars
    Using SSL: openssl OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
    ...
    
    -----
    Country Name (2 letter code) [JP]: <== 国を指定(Enterキー入力)
    State or Province Name (full name) [Kanagawa]: <== 都道府県を指定(Enterキー入力)
    Locality Name (eg, city) [kawasaki]: <== 市区町村を入力(Enterキー入力)
    Organization Name (eg, company) [NIFCLOUD Private CA]: <== 組織を入力(Enterキー入力)
    Organizational Unit Name (eg, section) []: <== 部門を入力(Enterキー入力)
    Common Name (eg: your user, host, or server name) [server]:server.nifcloud.local <== コモンネームを入力
    Email Address []: <== E-Mail アドレスを入力(Enterキー入力)
    
    Keypair and certificate request completed. Your files are:
    req: /root/cert/pki/reqs/server.req
    key: /root/cert/pki/private/server.key
  2. サーバー証明書署名要求のインポート

    # ./easyrsa import-req pki/reqs/server.req server.nifcloud
    
    Note: using Easy-RSA configuration from: /root/cert/vars
    Using SSL: openssl OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
    
    The request has been successfully imported with a short name of: server.nifcloud
    You may now use this name to perform signing operations on this request.
  3. サーバー証明書の署名

    # ./easyrsa sign-req server server.nifcloud
    Note: using Easy-RSA configuration from: /root/cert/vars
    Using SSL: openssl OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
    
    ...
    
    Request subject, to be signed as a server certificate for 3650 days:
    
    subject=
        countryName               = JP
        stateOrProvinceName       = Kanagawa
        localityName              = kawasaki
        organizationName          = NIFCLOUD Private CA
        commonName                = server.nifcloud.local
    
    Type the word 'yes' to continue, or any other input to abort.
      Confirm request details: yes <== yesと入力
    
    ...
    
    Write out database with 1 new entries
    Data Base Updated
    
    Certificate created at: /root/cert/pki/issued/server.nifcloud.crt

クライアント証明書の作成方法

作成するファイル
クライアント証明書 /root/cert/pki/issued/client.nifcloud.crt
クライアント証明書の秘密鍵 /root/cert/pki/private/client.key
作成手順
  1. クライアント証明書署名要求の作成

    各種設定にvarsに設定した値がデフォルトとして設定されています。 Common Nameのみ手動で入力してください。

    # ./easyrsa gen-req client nopass
    Note: using Easy-RSA configuration from: /root/cert/vars
    Using SSL: openssl OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
    
    ...
    
    -----
    Country Name (2 letter code) [JP]: <== 国を指定(Enterキー入力)
    State or Province Name (full name) [Kanagawa]: <== 都道府県を指定(Enterキー入力)
    Locality Name (eg, city) [kawasaki]: <== 市区町村を入力(Enterキー入力)
    Organization Name (eg, company) [NIFCLOUD Private CA]: <== 組織を入力(Enterキー入力)
    Organizational Unit Name (eg, section) []: <== 部門を入力(Enterキー入力)
    Common Name (eg: your user, host, or server name) [client]:client.nifcloud.local <== コモンネームを入力
    Email Address []: <== E-Mail アドレスを入力(Enterキー入力)
    
    Keypair and certificate request completed. Your files are:
    req: /root/cert/pki/reqs/client.req
    key: /root/cert/pki/private/client.key
  2. クライアント証明書署名要求のインポート

    # ./easyrsa import-req pki/reqs/client.req client.nifcloud
    
    Note: using Easy-RSA configuration from: /root/cert/vars
    Using SSL: openssl OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
    
    The request has been successfully imported with a short name of: client.nifcloud
    You may now use this name to perform signing operations on this request.
  3. クライアント証明書の署名

    # ./easyrsa sign-req client client.nifcloud
    Note: using Easy-RSA configuration from: /root/cert/vars
    Using SSL: openssl OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
    
    ...
    
    Request subject, to be signed as a client certificate for 3650 days:
    
    subject=
        countryName               = JP
        stateOrProvinceName       = Kanagawa
        localityName              = kawasaki
        organizationName          = NIFCLOUD Private CA
        commonName                = client.nifcloud.local
    
    Type the word 'yes' to continue, or any other input to abort.
      Confirm request details: yes <== yesと入力
    
    ...
    
    Write out database with 1 new entries
    Data Base Updated
    
    Certificate created at: /root/cert/pki/issued/client.nifcloud.crt

確認手順

証明書の確認手順

証明書(crtファイル)は以下のコマンドで確認します。

openssl x509 -in <crtファイル>

# openssl x509 -in /root/cert/pki/issued/client.nifcloud.crt
-----BEGIN CERTIFICATE-----
xxxxx...
...........................
...xxxxxx
-----END CERTIFICATE-----
秘密鍵の確認手順

秘密鍵(keyファイル)は以下のコマンドで確認します。

cat <keyファイル>

# cat /root/cert/pki/private/server.key
-----BEGIN PRIVATE KEY-----
xxxxx...
...........................
...xxxxxx
-----END PRIVATE KEY-----
証明書アップロード

表示された証明書や秘密鍵をコントロールパネルからアップロードし、証明書の一覧に表示される事を確認します。
※client.nifcloud.crtをそのままアップロードした場合はエラーになるため、上記のコマンドで表示された内容をアップロードしてください。

アップロード時に、以下を確認してください。
-----BEGIN xxx-----で始まり、-----END xxx-----で終わっていること
・ 証明書や証明書署名要求、秘密鍵など異なる種類のBEGINENDが連結されていないこと

クラウドヘルプ(サーバー証明書:アップロード)
クラウドヘルプ(CA証明書:アップロード)

ニフクラ サイト内検索

ユーザーガイドメニュー

  • ツイッターでフォローしてください
  • ニフクラ公式フェイスブックページ
  • ※本ページ記載の金額は、すべて税抜表示です。
  • ※本ページ記載の他社製品名および会社名などは、各社の商標または登録商標です。
  • ※本ページの内容は、2023年9月05日時点の情報です。

推奨画面サイズ 1024×768 以上