大綱
- 起步 - 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 | set KEY_COUNTRY=US # 國家代碼,限2碼 |
第二步 (此步驟為往後需要再建立憑證時的起點)
輸入執行 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.crt
及 ca.key
這兩個檔案缺一不可,沒有就是失敗了
第四步,產生伺服器憑證
輸入執行 build-key-server server
這邊的server 是要輸入你剛剛打的Common Name,切記要一致。
同樣會問剛才vars內的問題,盡量都保持一致,最重要的 Common Name
要跟剛剛一致
接著 keys 目錄會產生 server.crt
及 server.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.crt
及 client.key
,沒有這兩個檔案代表失敗
最後…
確認一下你的 keys 目錄內應該會有下列檔案
1 | ca.crt |
今天就聊到這邊,下一篇繼續談如何設定伺服器的.ovpn檔案