OpenVPN Configuration Step by Step

From MikroTik Wiki
Jump to: navigation, search

In this article i will talk about Open VPN , And How to Setup that as completly , such Basic Configuration , Certificate , OpenVPN Configurations .

in many topics and Forums Users talk about OpenVPN and proximate 90% of their have problem to run and correct installations of OpenVPN .

so , i decide to show you how you can do it correctly , Let's go !

What is OpenVPN ?

OpenVPN has been ported to various platforms, including Linux and Windows, and it's configuration is throughout likewise on each of these systems, so it makes it easier to support and maintain.

Also, OpenVPN is one of the few VPN protocols that can make use of a proxy, which might be handy sometimes.

and You are able to use Various Port ( TCP Port ) for Your VPN Connections .

For More Information Click Here

Requirements :

RouterOS or Routerboard ( In This Article I have RB493AH , Version 6 RC 13 )

Public or Private IP Address or Valid Domain Name ( My Router , Domain Name : Reza.IPExperts.Ir )

If you have a Domain Name same as this Article , you can Point all request for Certificate to your Domain , Unless you should use your IP Address !

Public or Private Certificate for OpenVPN ( i will use CaCert Free Certificate )

PPP Package ( To Install Openvpn Service )

OpenVPN GUI for Windows ( if you OpenVPN Client is Windows User OpenVPN GUI , in this Article Client is another Routerboard )

Linux Operation System with Openssl Service

Basic Configuration :

Please Set IP Address and Default Route and other Basic Configurations in Your MikroTik ( DNS , NTP , etc. )


ip address
add address= comment="Public IP" interface="WLAN 1 - Home" \

Add a Default Route


ip route
add distance=1 gateway=

Certificate :

OpenVPN use Certificate to setup Connections , So Open a New Terminal window and create a certificate request with your Information :


certificate create-certificate-request

You will be asked a number of questions , Some of them are important , some of them is not .

select name for certificate request file.

it will be created after you finish entering all required information.

certificate request file name: certificate-request.pem

select name of private key file.

if such file does not exist, it will be created later.


file name: private-key.pem

private key file already exists and will be overwritten if you continue.

please enter passphrase that will be used to encrypt generated private key file.

you must enter it twice to be sure you have not made any typing errors.


passphrase: 123456 [IMPORTANT]

verify passphrase: 123456 [IMPORTANT]

enter number of bits for RSA key.

longer keys take more time to generate.


rsa key bits: 2048 [Default]

now you will be asked to enter values that make up distinguished name of your certificate.

you can leave some of them empty.

CA may reject your certificate request if some of these values are incorrect or missing, so please check what are the requirements of your CA.


enter two character country code.

country name: IR [NOT IMPORTANT]


enter full name of state or province.

state or province name: Khuzestan [NOT IMPORTANT]


enter locality (e.g. city) name

locality name: Ahvaz [NOT IMPORTANT]


enter name of the organization

organization name: IPExperts [NOT IMPORTANT]


enter organizational unit name

organization unit name: IT Department [NOT IMPORTANT]


enter common name.

for ssl web servers this must be the fully qualified domain name (FQDN) of the server that will use this certificate (like .

this is checked by browsers.

common name: [IMPORTANT] or common name : [IMPORTANT]


enter email address

email address: R.Moghadam@Hotmail.Com [NOT IMPORTANT]


now you can enter challenge password.

it's use depends on your CA.

it may be used to revoke this certificate.

challenge password: 123456 [NOT IMPORTANT]


you can enter unstructured address, if your CA accepts or requires it.

unstructured address: Reza Moghadam [NOT IMPORTANT]


After a few seconds you will receive notification that the Certificate Request file was created:


You can see Certificate-Request.pem and Private-key.pem is added in Files Menu


CaCerts :

Please Drag and Drop Request Files Include ( Certificate-Request.pem and Private-Key.pem ) to your Desktop .

first open Certificate-Request.pem file with Wordpad , Copy All String Include Begin and Ends of Certificate Request , Then Login to your Account in Cacert and Make a New Server Certificate .


Paste your Certificate-Request.pem Strings to CSR Fields in Your Account ( New Server Certificate ) and Submit That .


Domain is Accepted .


Copy and Paste your Certificate Response from Cacert in a Wordpad and save that with .pem file ( In Here : certificate-response.pem )


Private Key :

We need a Private-Key as Key file , But Generated private keys will be in pkcs8 format, which is not supported in RouterOS.

To import such keys we should use Openssl Tool in Linux Distributes and make a Privat-Key File .

We can setup Openssl via these command :

apt-get install openssl
yum install openssl

Upload or Move Private-Key.pem file to That Linux OS with Openssl Service ( Bitvise SSH Client )


make your Private-Key.key file via these command :


openssl rsa -in private-key.pem -text

copy and paste export String ( Include Begin and End ) to a New File ( Ex. Private-Key.Key )


Import Certificate

Import Files ( Certificate-Response.pem , Private-Key.Key ) to Your MikroTik Files Menu .


First Import Certificate-Response.pem file with that Paraphrase


Second Import Private-Key.Key file with that Paraphrase


Once you have imported the private key, your certificate should get a "KR" written next to it K: Decrypted-Private-Key R: RSA

Now you will be able to use this key for OVPN.


OpenVPN Server Configuration :

we should make a IP Pool for Openvpn clients .


ip pool
add name=PPP ranges=,

Make a Profile for OpenVPN Service .



Warning: screenshot shows incorrect local address, it should be as per command below

ppp profile
set 0 dns-server=,
add dns-server=, local-address= name=\
    "OpenVPN Profile" remote-address=PPP

Make a Username & Passowrd for OpenVPN Client


ppp secret
add name=1 password=1 profile="OpenVPN Profile"

Enable OpenVPN Service and Select Valid Certificate .


interface ovpn-server server
set certificate=cert1 enabled=yes


add a masquared firewall nat rule to share internet with OpenVPN Client .



ip firewall nat
add action=masquerade chain=srcnat src-address=

OpenVPN Client :

Make a OpenVPN Client and Set Address of OpenVPN Server and Username & Password .


interface ovpn-client
add auth=none cipher=none mac-address=\
    02:FB:D1:D8:20:B7 name=ovpn-out1 password=1 user=1

Finally :

you can see OpenVPN Client is Connected and you will able to Ping it .


Reza Moghadam

--MikroTik Certified Trainer 12:02, 4 April 2013 (UTC)