###### tags: `aws` # AWS Client VPN endpoints ![](https://i.imgur.com/jQltN23.png) ## 創建步驟 ### 1. 建立RSA公私鑰 參考步驟 [點擊](https://hackmd.io/@YJpKjOOqQJWp5dfsfMyF1w/BJcUMmVwi) ### 2. 將憑證公私鑰上傳到aws ACM 這邊注意一下, fileb不要換成路徑,不然會出現Invalid base64: 正確做法是將以下檔案放到同一個資料夾,並在終端機cd進去執行指令 ``` . ├── ca.crt ├── client1.domain.tld.crt ├── client1.domain.tld.key ├── server.crt └── server.key ``` server ``` aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt ``` client ``` aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt ``` ### 3. 使用aws web ui 建立vpn * 選擇vpc -> Client VPN endpoints ![](https://i.imgur.com/UrKrbHf.png) * server & client certificate 選擇step2 放置在aws-acm的server&client ![](https://i.imgur.com/FA4SPuM.png) * 選擇想要連進去的vpc網域, 其他設定保持不變 ![](https://i.imgur.com/l5a301q.png) ### 4. 新增Target network associations **subnet 我這邊是選擇public subnet盡量不要吃到private Nat流量為主** ![](https://i.imgur.com/kbQXKC9.png) ### 5. 新增Authorization rules 可以限制連到此vpn的ip **目前是允許全部擁有公鑰憑證的都可以通過** ![](https://i.imgur.com/z0u2Ild.png) ### 6. Route Table 要新增一個對外的0.0.0.0/0(這樣才可以連到外面網路) ![](https://i.imgur.com/0rcbxdk.png) ### 7. Download Client configuration並修改它 找到step1 建立的client ca&key * 用戶端憑證 —easy-rsa/easyrsa3/pki/issued/client1.domain.tld.crt * 用戶端金鑰 —easy-rsa/easyrsa3/pki/private/client1.domain.tld.key 打開configuration 並將新增 <cert></cert> & <key></key>的標籤並且分別填上以上檔案的內容,參考如下 ``` <cert> Contents of client certificate (.crt) file </cert> <key> Contents of private key (.key) file </key> ``` ### 8. 最後找到指定用戶端 VPN 終端節點 DNS 名稱的行,並在前面附加一個隨機字串 original: cvpn-endpoint-0b32abe831897327d.prod.clientvpn.ap-south-1.amazonaws.com 443 modified: eacd.cvpn-endpoint-0b32abe831897327d.prod.clientvpn.ap-south-1.amazonaws.com 443 前面那個eacd是可以隨機亂打的 範例如下圖 原先的: ![](https://i.imgur.com/BwpmCkj.png) 修改後 ![](https://i.imgur.com/4i5SoRF.png) # 坑 ## 問題-DNS 解析不到 **解法:** 把8.8.8.8(google)加入dns解析 ![](https://i.imgur.com/TBpZEAt.png)