dotnet / dotnet/dev-proxy

Automate configuring Dev Proxy certificate on Linux

Ouverte
#601 11 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
C#
Étoiles
832
Forks
89
Merge moyen
12 h 1 min
PR mergées (30 j)
23

Description

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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par reproduire sous Linux le flux documenté `./devproxy --install-cert --log-level trace` et comparez-le au comportement de Windows décrit dans l’issue. Vérifiez comment le point d’entrée `--install-cert` gère la confiance du certificat, puis vérifiez la réussite avec la requête HTTPS `wget` fournie, sans `--no-check-certificate`.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp
Domaine
cli, security
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.