Automate configuring Dev Proxy certificate on Linux
- 主要言語
- C#
- スター
- 832
- フォーク
- 89
- 平均マージ
- 12時間 1分
- マージ済み PR(30日)
- 23
説明
### Description
Hey everyone,
I've been trying to get devproxy to work on Linux for HTTPS proxying, but I'm hitting a wall.
It works fine with HTTP, and on Windows, it's working as per the documentation.
However, when I switch to Linux, HTTPS isn't cooperating.
I even tried exporting the Windows certificate and adding it to the trusted root certificates on Linux, but no luck there.
I've checked the docs, but I can't seem to find a fix. Any help or advice would be greatly appreciated!
I tried on Ubuntu app (Windows 11 pro wsl2)
I tried on Ubuntu 18.04
I tried on a Docker container based on Ubuntu 22.04
Thanks!
### Expected behaviour
The devproxy binary should register a root certificate when --install-cert is used
### Actual behaviour
Any attempt to access a website through the proxy with HTTPS results with an error.
### Steps to reproduce
Install dev proxy on a Linux (ubuntu) environment following documented instructions.
```
cd ~/devproxy
./devproxy --install-cert --log-level trace
```
Output is:
```
Loading plugin RetryAfterPlugin from: /home/patrick/devproxy/plugins/dev-proxy-plugins.dll
Loading plugin GenericRandomErrorPlugin from: /home/patrick/devproxy/plugins/dev-proxy-plugins.dll
8 error responses loaded from /home/patrick/devproxy/devproxy-errors.json
Listening on 127.0.0.1:8000...
WARNING: Configure your operating system to use this proxy's port and address [127.0.0.1:8000](http://127.0.0.1:8000/)
Press CTRL+C to stop Dev Proxy
```
Open another terminal and try this:
```
wget -e use_proxy=yes -e https_proxy=https://127.0.0.1:8000/ https://jsonplaceholder.typicode.com/posts
```
The output:
```
Connecting to 127.0.0.1:8000... connected.
ERROR: cannot verify [jsonplaceholder.typicode.com](http://jsonplaceholder.typicode.com/)'s certificate, issued by ‘CN=Dev Proxy CA’:
Unable to locally verify the issuer's authority.
To connect to [jsonplaceholder.typicode.com](http://jsonplaceholder.typicode.com/) insecurely, use `--no-check-certificate'.
```
If we follow recommendation and add --no-check-certificate, it works
```
request GET https://jsonplaceholder.typicode.com/posts
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts
```
### Dev Proxy Version
0.15.0
### Operating system (environment)
Linux
### Shell
bash
### Configuration file
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.15.0/rc.schema.json",
"plugins": [
{
"name": "RetryAfterPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
},
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "genericRandomErrorPlugin"
}
],
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
"genericRandomErrorPlugin": {
"errorsFile": "devproxy-errors.json"
},
"rate": 50,
"labelMode": "text",
"logLevel": "information",
"newVersionNotification": "stable"
}
### Additional Info
_No response_
コントリビューションガイド
調査の方向性
まず、Linux で文書化されている `./devproxy --install-cert --log-level trace` のフローを再現し、issue に記載されている Windows の動作と比較します。`--install-cert` エントリポイントが証明書の信頼をどのように処理するかを確認し、その後、`--no-check-certificate` を付けずに、提供されている `wget` HTTPS リクエストで完了を確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- csharp
- 領域
- cli, security
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100