Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    OpenVPN setup

    General pfSense Questions
    3
    3
    5.6k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      nsumner
      last edited by

      I am looking to setup OpenVPN on my system. The problem is that I can't find a way to create the keys. I would assume I should be able to using SSH but I can't find the openvpn directory. Can anybody make any suggestions (either a Windows program to handle it and import the keys, or where the openvpn directory is).

      1 Reply Last reply Reply Quote 0
      • R
        robbyt
        last edited by

        @nsumner:

        I am looking to setup OpenVPN on my system. The problem is that I can't find a way to create the keys. I would assume I should be able to using SSH but I can't find the openvpn directory. Can anybody make any suggestions (either a Windows program to handle it and import the keys, or where the openvpn directory is).

        there's a folder in the openvpn tar- "easy-rsa" that contains scripts to create the keys

        read the OVPN quickstart:
        http://openvpn.net/howto.html#quick

        Generate the master Certificate Authority (CA) certificate & key

        In this section we will generate a master CA certificate/key, a server certificate/key, and certificates/keys for 3 separate clients.

        For PKI management, we will use a set of scripts bundled with OpenVPN.

        If you are using Linux, BSD, or a unix-like OS, open a shell and cd to the easy-rsa subdirectory of the OpenVPN distribution. If you installed OpenVPN from an RPM file, the easy-rsa directory can usually be found in /usr/share/doc/packages/openvpn or /usr/share/doc/openvpn-2.0 (it's best to copy this directory to another location such as /etc/openvpn, before any edits, so that future OpenVPN package upgrades won't overwrite your modifications). If you installed from a .tar.gz file, the easy-rsa directory will be in the top level directory of the expanded source tree.

        If you are using Windows, open up a Command Prompt window and cd to \Program Files\OpenVPN\easy-rsa. Run the following batch file to copy configuration files into place (this will overwrite any preexisting vars.bat and openssl.cnf files):

        init-config

        Now edit the vars file (called vars.bat on Windows) and set the KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL parameters. Don't leave any of these parameters blank.

        Next, initialize the PKI. On Linux/BSD/Unix:

        . ./vars
            ./clean-all
            ./build-ca

        On Windows:

        vars
            clean-all
            build-ca

        The final command (build-ca) will build the certificate authority (CA) certificate and key by invoking the interactive openssl command:

        ai:easy-rsa # ./build-ca
            Generating a 1024 bit RSA private key
            ….........++++++
            ...........++++++
            writing new private key to 'ca.key'
            -----
            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.
            -----
            Country Name (2 letter code) [KG]:
            State or Province Name (full name) [NA]:
            Locality Name (eg, city) [BISHKEK]:
            Organization Name (eg, company) [OpenVPN-TEST]:
            Organizational Unit Name (eg, section) []:
            Common Name (eg, your name or your server's hostname) []:OpenVPN-CA
            Email Address [me@myhost.mydomain]:

        Note that in the above sequence, most queried parameters were defaulted to the values set in the vars or vars.bat files. The only parameter which must be explicitly entered is the Common Name. In the example above, I used "OpenVPN-CA".
        Generate certificate & key for server

        Next, we will generate a certificate and private key for the server. On Linux/BSD/Unix:

        ./build-key-server server

        On Windows:

        build-key-server server

        As in the previous step, most parameters can be defaulted. When the Common Name is queried, enter "server". Two other queries require positive responses, "Sign the certificate? [y/n]" and "1 out of 1 certificate requests certified, commit? [y/n]".
        Generate certificates & keys for 3 clients

        Generating client certificates is very similar to the previous step. On Linux/BSD/Unix:

        ./build-key client1
            ./build-key client2
            ./build-key client3

        On Windows:

        build-key client1
            build-key client2
            build-key client3

        If you would like to password-protect your client keys, substitute the build-key-pass script.

        Remember that for each client, make sure to type the appropriate Common Name when prompted, i.e. "client1", "client2", or "client3". Always use a unique common name for each client.
        Generate Diffie Hellman parameters

        Diffie Hellman parameters must be generated for the OpenVPN server. On Linux/BSD/Unix:

        ./build-dh

        On Windows:

        build-dh

        Output:

        ai:easy-rsa # ./build-dh
            Generating DH parameters, 1024 bit long safe prime, generator 2
            This is going to take a long time
            …..............+...........................................
            ...................+.............+.................+.........
            ......................................

        1 Reply Last reply Reply Quote 0
        • ?
          Guest
          last edited by

          great faq :) but please tell me what to do if i would like to add another cilent certificate after some time?
          what step to do?

          1 Reply Last reply Reply Quote 0
          • First post
            Last post
          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.