Windows 下使用 CA 驗證的 OpenVPN Server 的配置方法

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

Windows 下使用 CA 驗證的 OpenVPN Server 的配置方法

Windows 下使用 CA 驗證的 OpenVPN 的配置方法

應N多網友的要求,決定開始寫Windows下OpenVPN的安裝手冊了,其實Windows下比linux簡單,
因為使用網站提供的安裝包,很容易就把OpenVPN安裝上了,只需配置就OK了。

本文描述如何在Windows下使用CA的OpenVPN Server的配置方法。

有疑問大家關注:
http://elm.freetcp.com
http://wenzk.cublog.cn

不廢話了,下面開始吧:)

下載安裝OpenVPN:

用Flashget或者其它任何方式下載OpenVPN的安裝包,然後安裝,記得選上easy-rsa這部分腳本,
用於管理CA的bat腳本。
http://openvpn.se/files/install_packages/openvpn-2.0.5-gui-1.0.3-install.exe

安裝完畢后,easy-rsa在C:\Program Files\OpenVPN\目錄下。

下面開始配置:
把easy-rsa目錄下的vars.bat.sample改名為vars.bat,並且修改其內容:
==================================
set KEY_COUNTRY=CN
set KEY_PROVINCE=Liaoning
set KEY_CITY=Shenyang
set KEY_ORG=OpenVPN
set KEY_EMAIL=elm@elm.freetcp.com
==================================
其它部分就不用修改了,上面部分修改成你自己的配置。

把easy-rsa下的openssl.cnf.sample改成openssl.cnf。

然後進入cmd.exe
=============================================
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>cd "\Program Files\OpenVPN\easy-rsa"

C:\Program Files\OpenVPN\easy-rsa>vars

C:\Program Files\OpenVPN\easy-rsa>clean-all.bat
系統找不到指定的文件。
已複製         1 個文件。
已複製         1 個文件。

C:\Program Files\OpenVPN\easy-rsa>

生成Root CA
格式: build-ca.bat
輸出: keys/ca.crt keys/ca.key
======================================================================
C:\Program Files\OpenVPN\easy-rsa>build-ca.bat
Using configuration from openssl.cnf
Generating a 1024 bit RSA private key
......++++++
.........++++++
writing new private key to 'keys\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) :
State or Province Name (full name) :
Locality Name (eg, city) :
Organization Name (eg, company) :
Organizational Unit Name (eg, section) []:OpenVPN ORG
Common Name (eg, your name or your server's hostname) []:OpenVPN RootCA
Email Address [elm@elm.freetcp.com]:

C:\Program Files\OpenVPN\easy-rsa>

生成dh1024.pem文件,Server使用TLS必須使用的一個文件。
格式: build-dh.bat
輸出: keys/dh1024.pem
============================================================================
C:\Program Files\OpenVPN\easy-rsa>build-dh.bat
warning, not much extra random data, consider using the -rand option
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.....................+...............+........+.................................
....................................+...........................+...............
........................................+.......................................
.........................................+...............+......................
................................................................................
.......................+..................................+.....................
..........................+.........................+...........+...............
.......+.........................+..............................................
........+....+..................................................................
................................................................................
...+....+.+...........................................+.........................
....................................................................+...........
.................+.....................................................+........
..............................................................+...+.............
.....+.........................+...........+....................................
................+......................+.....................................+..
....................................................................+.........+.
......+........................................................+................
...............................+..+.............................+...............
..............................................+.......................+.........
................................................................................
............................................................................+...
...................................+.............+..............................
.............................................................+.+........+.......
..............................................+.................................
...+............................................................................
............+..................................................+................
...........................+..........................................+........+
.........+.........+..........................................+................+
..+..........................................................................+..
.....+..+....................+.....................+............................
................................................................................
...........+.........+....+.........................+...........+.......+.+.....
.....................................................+................+.........
..........+.....................................................................
................+...............................................+..........+....
................................................................................
.................+.........................................+....................
..............................................................................+.
.......+.......................................................+..+.............
+................................+...+..........................+...............
..........................................................+..................+..
................................................................................
......................................................+.........................
....+.......................+.......................+...........................
..............+.................................................................
.......................................................+........................
..........................................................................+.....
......+..................................+......................................
...................................................+..................+.........
..............+.......................+.........................................
................................................................................
.....+....................+...........................+.........................
................................................................................
........................................................................++*++*++
*

C:\Program Files\OpenVPN\easy-rsa>

下面開始生成Server使用的證書了:
格式: build-key-server.bat <filename>
輸出: keys/<filename>.crt <filename>.csr <filename>.key
================================================================================
C:\Program Files\OpenVPN\easy-rsa>build-key-server.bat server01
Using configuration from openssl.cnf
Generating a 1024 bit RSA private key
................++++++
.....++++++
writing new private key to 'keys\server01.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) :
State or Province Name (full name) :
Locality Name (eg, city) :
Organization Name (eg, company) :
Organizational Unit Name (eg, section) []:OpenVPN ORG
Common Name (eg, your name or your server's hostname) []:Server01
Email Address [elm@elm.freetcp.com]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from openssl.cnf
Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows
countryName           :PRINTABLE:'CN'
stateOrProvinceName   :PRINTABLE:'Liaoning'
localityName          :PRINTABLE:'Shenyang'
organizationName      :PRINTABLE:'OpenVPN'
organizationalUnitName:PRINTABLE:'OpenVPN ORG'
commonName            :PRINTABLE:'Server01'
emailAddress          :IA5STRING:'elm@elm.freetcp.com'
Certificate is to be certified until Feb  9 10:01:34 2016 GMT (3650 days)
Sign the certificate? :y


1 out of 1 certificate requests certified, commit? y
Write out database with 1 new entries
Data Base Updated

C:\Program Files\OpenVPN\easy-rsa>

下面開始為client辦法證書:
格式: build-key.bat <filename>
輸出: keys/<filename>.crt keys/<filename>.csr keys/<filename>.key
===========================================================================
C:\Program Files\OpenVPN\easy-rsa>build-key.bat elm
Using configuration from openssl.cnf
Generating a 1024 bit RSA private key
.....................................................++++++
...................................................++++++
writing new private key to 'keys\elm.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) :
State or Province Name (full name) :
Locality Name (eg, city) :
Organization Name (eg, company) :
Organizational Unit Name (eg, section) []:OpenVPN ORG
Common Name (eg, your name or your server's hostname) []:ELM
Email Address [elm@elm.freetcp.com]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from openssl.cnf
Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows
countryName           :PRINTABLE:'CN'
stateOrProvinceName   :PRINTABLE:'Liaoning'
localityName          :PRINTABLE:'Shenyang'
organizationName      :PRINTABLE:'OpenVPN'
organizationalUnitName:PRINTABLE:'OpenVPN ORG'
commonName            :PRINTABLE:'ELM'
emailAddress          :IA5STRING:'elm@elm.freetcp.com'
Certificate is to be certified until Feb  9 10:05:53 2016 GMT (3650 days)
Sign the certificate? :y


1 out of 1 certificate requests certified, commit? y
Write out database with 1 new entries
Data Base Updated

C:\Program Files\OpenVPN\easy-rsa>

下面生成ta.key文件
格式: openvpn --genkey --secret keys/ta.key
輸出: keys/ta.key
=========================================================================
C:\Program Files\OpenVPN\easy-rsa>openvpn --genkey --secret keys/ta.key

C:\Program Files\OpenVPN\easy-rsa>

OK,那些keys就搞定了,下面開始寫配置文件。
server01.ovpn內容:
----------------CUT Here-------------
port 1194
proto udp
dev tap
ca ca.crt
cert server01.crt
key server01.key # This file should be kept secret
;crl-verify vpncrl.pem
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
;duplicate-cn
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
;max-clients 100
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
--------------Cut Here-----------------
把配置文件放到C:\Program Files\OpenVPN\config\目錄下。
把easy-rsa\keys\下的 ca.crt server01.crt server01.key ta.key dh1024.pem
複製到server01.ovpn所在目錄。

Server的配置已經結束,可以啟動Server了,在右下角OpenVPN-gui上點右鍵,然後選擇connected。
需要伺服器啟動后自動運行,修改 "控制面板" 下面的 "管理工具" 下的 "服務" 把OpenVPN設置成自動啟動。

Client的配置文件:
-------------Cut Here---------------------
client
dev tap
proto udp

remote 61.1.1.2 1194
;remote my-server-2 1194

;remote-random

resolv-retry infinite
nobind
user nobody
group nobody
route 192.168.0.0 255.255.252.0
persist-key
persist-tun

;http-proxy-retry # retry on connection failures
;http-proxy

ca ca.crt
cert elm.crt
key elm.key

ns-cert-type server
tls-auth ta.key 1
comp-lzo
# Set log file verbosity.
verb 4
--------------Cut Here---------------------
並且把easy-rsa/keys下的ca.crt elm.crt elm.key ta.key一起放到Client的
<OPENVPN_HOME>\config目錄下。

Client的配置已經結束,可以連接Server了,在右下角OpenVPN-gui上點右鍵,然後選擇connected。


OK,整個配置就完成了。

需要為其它用戶頒發證書,只需如下步驟:
進入cmd.exe

cd <OPENVPN_HOME>\easy-rsa
vars.bat
build-kye.bat <filename>

Client所需要的文件:

client.ovpn (需要修改部分配置)
ca.crt
<fielname>.crt
<filename>.key (<filename>為 文件名,如: elm 等)
ta.key

OK,日後有空看怎麼配置使用User/Pass。

ELM 2006-02-11
《解決方案》

摟主辛苦了




[火星人 ] Windows 下使用 CA 驗證的 OpenVPN Server 的配置方法已經有619次圍觀

http://coctec.com/docs/service/show-post-34472.html