本文へジャンプします。

【重要なお知らせ】サービス統合に基づくサービス名称の読み替えのお願い(2024年4月1日)

2024年4月1日をもって、「ニフクラ」は、「FJcloud-V」に統合し、名称を変更しました。
当サイトのアドレス(ドメイン名)に含まれる「nifcloud.com」は現時点では変更はございませんが、
各ページに記載の「ニフクラ」「NIFCLOUD」「nifcloud」は、「FJcloud-V」に読み替えていただきますようお願いいたします。

ニフクラ ユーザーガイド

クラウド トップ>ネットワーク>ユーザーガイド>リモートアクセスVPNゲートウェイ:Easy-RSAを使った自己署名証明書作成手順(Linux)

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

LinuxOSにおいて、Easy-RSAを使って自己署名証明書を作成する手順です。

構成

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

手順環境
バージョン
Ubuntu 22.04
Easy-RSA 3.0.8
OpenSSL 3.0.2
注意事項
  • 本手順ではサーバー証明書およびクライアント証明書を同一の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      "sample 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証明書の作成方法

作成手順
  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) [sample Private CA]: <== 組織を入力(Enterキー入力)
    Organizational Unit Name (eg, section) []: <== 部門を入力(Enterキー入力)
    Common Name (eg: your user, host, or server name) [Easy-RSA CA]:sample.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
  2. 以下のファイルが存在するか確認する

    CA証明書 /root/cert/pki/ca.crt

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

作成手順
  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) [sample Private CA]: <== 組織を入力(Enterキー入力)
    Organizational Unit Name (eg, section) []: <== 部門を入力(Enterキー入力)
    Common Name (eg: your user, host, or server name) [server]:server.sample.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.sample
    
    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.sample
    You may now use this name to perform signing operations on this request.
  3. サーバー証明書の署名

    # ./easyrsa sign-req server server.sample
    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          = SAMPLE Private CA
        commonName                = server.sample.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.sample.crt
  4. 以下のファイルが存在するか確認する

    サーバー証明書 /root/cert/pki/issued/server.sample.crt
    サーバー証明書の秘密鍵 /root/cert/pki/private/server.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) [SAMPLE Private CA]: <== 組織を入力(Enterキー入力)
    Organizational Unit Name (eg, section) []: <== 部門を入力(Enterキー入力)
    Common Name (eg: your user, host, or server name) [client]:client.sample.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.sample
    
    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.sample
    You may now use this name to perform signing operations on this request.
  3. クライアント証明書の署名

    # ./easyrsa sign-req client client.sample
    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          = SAMPLE Private CA
        commonName                = client.sample.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.sample.crt
  4. 以下のファイルが存在するか確認する

    クライアント証明書 /root/cert/pki/issued/client.sample.crt
    クライアント証明書の秘密鍵 /root/cert/pki/private/client.key

確認手順

証明書の確認手順

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

openssl x509 -in <crtファイル>`
# openssl x509 -in /root/cert/pki/issued/client.sample.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.sample.crtをアップロードしエラーになったら、確認手順で表示された-----BEGIN xxx-----から-----END xxx-----までをコピーしてテキストボックスへ張り付けてください。

アップロード時に、以下を確認してください。

  • -----BEGIN xxx----------END xxx-----の組み合わせが1つだけであること
  • 証明書や証明書署名要求、秘密鍵など異なる種類のBEGINENDが連結されていないこと


フィードバック

サービス利用中のトラブルは、ニフクラサポート窓口にお願いします。

お役に立ちましたか?

ニフクラ サイト内検索

ユーザーガイドメニュー

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

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