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

SSL-VPN用証明書を作成する手順を解説します。

本手順はLinux環境(OS:CentOS6.8、ツール:EasyRSA3.0.1)を使用した手順で作成しています。

実行ユーザーはスーパーユーザーで実施しています。

※本手順では以下ディレクトリで作業することを前提に記載します。

 作業ディレクトリ:/root/EasyRSA-3.0.1/

  1. CA局を初期化します
    # ./easyrsa init-pki

    証明書作成環境が作成されます。

    以下のディレクトリに証明書が生成されます。

    • CA証明書、DH鍵:./pki/.
    • サーバ・クライアント証明書:./pki/issued/.
    • 秘密鍵:./pki/private/.
  2. CA証明書を作成します。
    # ./easyrsa build-ca

    以下のようなメッセージが表示されるため、指示に従い対話式に処理を進めます。

    Generating a 2048 bit RSA private key
    ..........................+++
    ..........................................................+++
    writing new private key to '/root/EasyRSA-3.0.1/pki/private/ca.key.OMjyMXpDsW'
    Enter PEM pass phrase: <CA証明書用パスフレーズ(入力)>
    Verifying - Enter PEM pass phrase: <CA証明書用パスフレーズ(再入力)>
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Common Name (eg: your user, host, or server name) [Easy-RSA CA]: <コモンネーム(任意)>
    CA creation complete and you may now import and sign cert requests.
    Your new CA certificate file for publishing is at:
    /root/EasyRSA-3.0.1/pki/ca.crt
  3. CA 証明書が作成されたことを確認するため以下のコマンドを実行します。
    # ls –l /root/easyrsa/pki/

    以下のように、作成したCA証明書が出力された場合、作成は完了です。

    -rw-------. 1 root root 1180 MM DD hh:mm ca.crt
  4. サーバ証明書と秘密鍵を作成します。
    # ./easyrsa build-server-full <サーバ証明書と秘密鍵名(任意)> nopass

    以下のようなメッセージが表示されるため、指示に従い対話式に処理を進めます

    Generating a 2048 bit RSA private key
    .......................................+++
    ................+++
    writing new private key to '/root/EasyRSA-3.0.1/pki/private/server1.key.LCqVPOrjSV'
    -----
    Using configuration from /root/EasyRSA-3.0.1/openssl-1.0.cnf
    Enter pass phrase for /root/EasyRSA-3.0.1/pki/private/ca.key: <CA証明書用パスフレーズ(再入力)>
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    commonName            :PRINTABLE:'<サーバ証明書と秘密鍵名>'
    Certificate is to be certified until  MM  DD hh:mm:ss YYYY GMT (3650 days)
    
    Write out database with 1 new entries
    Data Base Updated
  5. サーバ証明書と秘密鍵が作成されたことを確認するため、以下のコマンドを実行します。

    サーバ証明書が作成されたことを確認するには以下のコマンドを実行します。

    # ls –l /root/easyrsa/pki/issued/

    以下のように、作成したサーバ証明書が出力された場合、作成は完了です。

    -rw-r--r--. 1 root root 4391 MM DD hh:mm <サーバ証明書と秘密鍵名>.crt
  6. サーバ証明書用秘密鍵が作成されたことを確認するため、以下のコマンドを実行します。

    サーバ証明書用秘密鍵が作成されたことを確認するには以下のコマンドを実行します。

    # ls –l /root/easyrsa/pki/private/

    以下のように、作成した秘密鍵が出力された場合、作成は完了です。

    -rw-r--r--. 1 root root 1704 MM DD hh:mm <サーバ証明書と秘密鍵名>.key
  7. DH鍵を作成します。
    # ./easyrsa gen-dh

    以下のようなメッセージが表示されます。

    Generating DH parameters, 2048 bit long safe prime, generator 2
    This is going to take a long time
    ........................+................................................................+.......................
    +....+...............+.......................+..............+......................+......................+......
                              ・
                 ・
    ..........................................++*++*
    
    DH parameters of size 2048 created at /root/EasyRSA-3.0.1/pki/dh.pem
  8. DH鍵が作成されたことを確認します。
    # ls –l ./root/easyrsa/pki/

    以下のように、作成したDH鍵が出力された場合、作成は完了です。

    -rw-r--r--. 1 root root  424 MM DD hh:mm dh.pem
  9. クライアント秘密鍵と証明書を作成します。
    警告: SSL-VPN接続で使用するクライアント証明書は必ずユーザー毎に一意の証明書を作成してください。複数のユーザーが1つの証明書を利用して同時にSSL-VPN接続を行うことはできません。
    # ./easyrsa build-client-full <クライアント秘密鍵と証明書名(任意)> nopass

    以下のようなメッセージが表示されるため、指示に従い対話式に処理を進めます。

    Generating a 2048 bit RSA private key
    .........................................................................
    ..........................................................................
    +++...........+++
    writing new private key to '/root/EasyRSA-3.0.1/pki/private/bps021.key.a5TcULwXAN'
    -----
    Using configuration from /root/EasyRSA-3.0.1/openssl-1.0.cnf
    Enter pass phrase for /root/EasyRSA-3.0.1/pki/private/ca.key: <CA証明書用パスフレーズ(再入力)>
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    commonName            :PRINTABLE:'<クライアント秘密鍵と証明書名(任意)>'
    Certificate is to be certified until MM  DD hh:mm:ss YYYY GMT (3650 days)
    
    Write out database with 1 new entries
    Data Base Updated
  10. 以下でクライアント証明書が作成されたことを確認します。
    # ls –l ./root/easyrsa/pki/issued/

    以下のように、作成したクライアント証明書が出力された場合、作成は完了です。

    -rw-------. 1 root root 1704 MM DD hh:mm <クライアント秘密鍵と証明書名>.crt
  11. 以下でクライアント秘密鍵が作成されたことを確認します。
    # ls –l ./root/easyrsa/pki/private/

    以下のように、作成したクライアント秘密鍵が出力された場合、作成は完了です。

    -rw-------. 1 root root 1704 MM DD hh:mm <クライアント秘密鍵と証明書名>.key
注:

作成した証明書を必要に応じて必要なクライアントPCに転送します。

  • CA証明書

    API実行環境クライアントPC、SSL-VPNクライアントPC

  • サーバ証明書と秘密鍵

    API実行環境クライアントPC

  • DH鍵

    API実行環境クライアントPC

  • クライアント秘密鍵と証明書

    SSL-VPNクライアントPC