---
# System prepended metadata

title: AWS Client VPN endpoints
tags: [aws]

---

###### 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)
