0%

windows下的OpenVPN設定 (1)

大綱

  • 起步 - Server端安裝
  • 在Server端製作key及crt
  • server的vopen檔案製作
  • client的vopen檔案製作
  • 連線測試

起步

使用版本:
windows 10 20H2
OpenVPN 2.5.0 released 28

OpenVPN

在 openVpn的主網頁取得安裝程式,這邊我們選 windows 64bit msi installer
https://openvpn.net/community-downloads/
安裝記得選Custom,我們需要做一些額外安裝(Client端就不用了,直接install)
確保OpenSSL Utilities的EasyRSA 3 Certificate Management Scripts有安裝
OpenVPN Service也可以考慮裝,這樣讓伺服器開機就自動啟動VPN環境了

OpenSSL

另外在Server端我們需要在安裝 Openssl 來產生連線用的憑證,到時候每個使用者都要做一張

這邊我們可以先開啟終端機視窗 (命令提示字元),輸入 openssl version 確認是否有安裝

而在windows系統下的openssl有兩種取得途徑:

  • [首選] OpenVPN內建,最新的版本安裝後會內附,就在 OpenVPN\bin 內,將這個路徑放入Path
  • 安裝Git for windows,裡面就會附該程式 openssl.exe ,記得要將該程式所在位置加入環境變數PATH,以我的狀況來說預設安裝在 C:\Program Files\Git\mingw64\bin
  • 使用網路上熱心幫忙編譯好的 https://slproweb.com/products/Win32OpenSSL.html ,選擇Win64 OpenSSL Light即可,記得也要手動將路徑加到環境Path,這邊通常能安裝到最新的版本。我這邊預設是裝在 C:\Program Files\OpenSSL-Win64\bin

製作連線憑證

開啟終端機視窗 (命令提示字元),記得要用管理者權限開啟。
進入剛剛安裝OpenVPN目錄裡面的easy-rsa,我這邊是 C:\Program Files\OpenVPN\easy-rsa

第一步:

輸入執行 init-config
它會自動產生vars.bat,這部份做一次就好
打開vars.bat,拉到最下面可以修改一些參數,以便日後不用重複輸入

1
2
3
4
5
6
set KEY_COUNTRY=US              # 國家代碼,限2碼
set KEY_PROVINCE=CA # 省市代碼
set KEY_CITY=SanFrancisco # 所在程式
set KEY_ORG=OpenVPN # 所屬組織
set KEY_EMAIL=mail@host.domain # 聯絡信箱
set KEY_OU=changeme # 組織內單位

第二步 (此步驟為往後需要再建立憑證時的起點)

輸入執行 vars
輸入執行 clean-all
到這裡環境初始化完成,出現 keys 目錄

第三步,產生ca憑證

輸入執行 build-ca
這邊就會把剛才vars設定的那些再問一次,如果不需要修正直接enter跳過,需要注意的是這邊:
Common Name (eg, your name or your server's hostname)
這邊是問憑證要給誰用,我們要產生的是伺服器的憑證,打 server 。你可以取想要的名字,但要注意的是不能跟之後的client憑證重複
到這裡可以看一下 easy-rsa 目錄內多了 keys 的目錄,且裡面有了 ca.crtca.key 這兩個檔案缺一不可,沒有就是失敗了

第四步,產生伺服器憑證

輸入執行 build-key-server server 這邊的server 是要輸入你剛剛打的Common Name,切記要一致。
同樣會問剛才vars內的問題,盡量都保持一致,最重要的 Common Name 要跟剛剛一致
接著 keys 目錄會產生 server.crtserver.key ,或是你剛剛打的Common Name

第五步,產生 ta.key

輸入執行 OpenVPN --genkey --sec

第六步,產生 dh2048.dem

輸入執行 build-dh

第七步,產生Client的憑證

日後只產生client憑證記得要先跑第二步再跳到這邊
輸入執行 build-key client , 這邊的 client 可以自行取名,同樣待會會問Common Name,都要打一樣,此外不能跟其他client或server的Common Name同名
執行完成會產生 client.crtclient.key ,沒有這兩個檔案代表失敗

最後…

確認一下你的 keys 目錄內應該會有下列檔案

1
2
3
4
5
6
7
8
9
10
11
ca.crt
ca.key
ta.key
dh2048.dem
server.crt
server.key
client.crt
client.key
client2.crt
client2.key
...

今天就聊到這邊,下一篇繼續談如何設定伺服器的.ovpn檔案