https CONNECT proxy for envoy
to use download all the files below, then run
./envoy -c basic.yaml -l debug
cat /etc/hosts
127.0.0.1 squid.yourdomain.com
curl -v -x https://squid.yourdomain.com:3128 --proxy-cacert tls-ca.crt -L https://httpbin.org/get
static_resources:
listeners:
- name: listener_0
address:
socket_address:
protocol: TCP
address: 127.0.0.1
port_value: 3128
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains:
- "*"
routes:
- match:
connect_matcher:
{}
route:
cluster: service_httpbin
upgrade_configs:
- upgrade_type: CONNECT
connect_config:
{}
http_filters:
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
http2_protocol_options:
allow_connect: true
upgrade_configs:
- upgrade_type: CONNECT
transport_socket:
name: envoy.transport_sockets.tls
typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
common_tls_context:
tls_certificates:
- certificate_chain:
filename: server_crt.pem
private_key:
filename: server_key.pem
clusters:
- name: service_httpbin
connect_timeout: 0.25s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: service_httpbin
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: httpbin.org
port_value: 443
-----BEGIN CERTIFICATE-----
MIIEPDCCAySgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJVUzEP
MA0GA1UECgwGR29vZ2xlMRMwEQYDVQQLDApFbnRlcnByaXNlMSIwIAYDVQQDDBlF
bnRlcnByaXNlIFN1Ym9yZGluYXRlIENBMB4XDTIyMDEwOTIyMjcyOFoXDTI3MDcw
MjIyMjcyOFowUjELMAkGA1UEBhMCVVMxDzANBgNVBAoMBkdvb2dsZTETMBEGA1UE
CwwKRW50ZXJwcmlzZTEdMBsGA1UEAwwUc3F1aWQueW91cmRvbWFpbi5jb20wggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEN5bRCAyXjDK2h9adbiGUCn1o
Cqq60MRhWEPQkayKquyPM7LCCR1F4fCb+lD9zeX8ug9XyP06IUleZwkGkgXbXvyi
H75Xdn3ZGpBqmjLzj88sX8xqZiZQbnbGfXPlsVg+Dfim6Yh4XK82x9dppULj5LQa
G32rAVfQkmxs3/mo7ud8kwaSniL1VSLXykQa70XQiSYiWs0NMuNiz8/xDCJgpMqm
4M/dyqyx/Ir08JtGMfypHtzHoAT26JseQ80eTvrbw0h3TfC//vI+H5pZohr+dL6o
/R+t+e9OIVLm0ngeCVycpgfazyVku7MJRCEstGY3hmfsCqiLErcqs7lX7BRjAgMB
AAGjggEWMIIBEjAOBgNVHQ8BAf8EBAMCB4AwCQYDVR0TBAIwADATBgNVHSUEDDAK
BggrBgEFBQcDATAdBgNVHQ4EFgQUua27rDE2LCS3ZwnyGA4RvP6gL28wHwYDVR0j
BBgwFoAUt7qwAqHnvjTGwQVcZnjlu1NdoVQwRAYIKwYBBQUHAQEEODA2MDQGCCsG
AQUFBzAChihodHRwOi8vcGtpLmVzb2RlbW9hcHAyLmNvbS9jYS90bHMtY2EuY2Vy
MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9wa2kuZXNvZGVtb2FwcDIuY29tL2Nh
L3Rscy1jYS5jcmwwHwYDVR0RBBgwFoIUc3F1aWQueW91cmRvbWFpbi5jb20wDQYJ
KoZIhvcNAQELBQADggEBAB3SAryhAD6HBUaxin6BfLPtgLpKMvqcbHwaVjkv8NGB
txTW6qm7hD41Wq/dNh3QG0iFG9GSbIv5O1/9VYzBQMOBDsRAwywH9lnCc2Q/JGqj
WBDRcmUtlP8TC8yuNQpoRjh6wweJScySIB8K3adUJjaW0xBgrRN1aVodIyETFDik
ow03zb73b9Hog5RprRr9IQAG8zbZK5kmMF/DfJTx6aCOPaU7tNDCa0vlJMTMWsmD
4Z+0yhPCavS0cu9ARBAKoXEZ/+WACl3+QM8vQnCn42YPDTwD4/IFC70w3/SYzXGz
+d8JvAi2W158PR7AQP3TVp2GofGWFZQRzvkLHGL1Yr4=
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDEN5bRCAyXjDK2
h9adbiGUCn1oCqq60MRhWEPQkayKquyPM7LCCR1F4fCb+lD9zeX8ug9XyP06IUle
ZwkGkgXbXvyiH75Xdn3ZGpBqmjLzj88sX8xqZiZQbnbGfXPlsVg+Dfim6Yh4XK82
x9dppULj5LQaG32rAVfQkmxs3/mo7ud8kwaSniL1VSLXykQa70XQiSYiWs0NMuNi
z8/xDCJgpMqm4M/dyqyx/Ir08JtGMfypHtzHoAT26JseQ80eTvrbw0h3TfC//vI+
H5pZohr+dL6o/R+t+e9OIVLm0ngeCVycpgfazyVku7MJRCEstGY3hmfsCqiLErcq
s7lX7BRjAgMBAAECggEARJVVjsyschAb7bb/KdnDvNYJzWLlGBU+fvP2CCHS2Ek0
FD2yvqWm6LU3f513z663M6XpFPr4n+fgmDGVcwl5KJtD3HsR8cpF5KunTMuHAaED
ffQiJBJ+U+C4fVp+NwvM1yvU/Kpl/AQRbildvtx3y+Y1mWaAf1Qh2JJFeayzu/rg
mXMYh+00SdP7DyIlUioSyTrsorvViEkNXAvu/XHikqcV5ipUoDec9bKPxfRwY4ID
sQlJ0j+pSa2YvOf83ndtBs01Md3gOmmK8KLMrdg30/CZIit0JJLxRQeR+V9iupHh
HVbdyp8RvkVwdu43Fp8QvYDzntbNvn5wV5a1Pa9SeQKBgQDiOuf61V7cBWSP4fX+
c8DMmMFnfQ9NTO0mfbAqI2R9CdTOek5cp/DU3JKldoxORWegG6t0sBvZu9Y4uMkU
h0QEXinjyljWdQ0ACxRVuPRYoZ7DrKce9qAuiEE28MKLFm07Wr/WJN0gJUXd2H2S
yGD2uAioWv3GHRXanZakjlcgDwKBgQDeCaA0qgRSwr4Vd8nIxe60uYVz0UnArhsB
mgUpOXTRpPqDaFNX+CAUdTr8syCPvpe+skCak8uE7Cl6zzzEEs8++SHE+aHxnxbE
DaGFU8qm4UjalDefu91WKGbJX7whQ9yvD/00DVn7thZlWhhwlp1QRFeSLG5zzH95
Del/FeeybQKBgQCd8ZhiRDONEurJlW2EL9ZsQT3N/b8ALfPoCppCYSFYNtPvL+6j
u9BlHHX5tVFxl/0oCAllV0qqcfy27zPb9DAliIRgd7YcS+4+mH2i95UIiBXq8RBg
irj8o748GE0KhCbQ6KPEY0pKlhs4LlxFbUZdGdFZkOVaOpY2Yg15Z7MmOwKBgAPD
mAKsiyw3/u7wO+x6ZoSLzJZdCuoISY7qZIIBZliTeme14gvQugJ+xkQ4aSnmqj3i
WbQFI2Maec2KK9aLFxZTNN5Y+QTWlJU4Qe+3ruzLTufdsV+02Ji4UJ3DULYjp18U
X099lnPs705Ci72E4B/XOMDSngC6i8KqmLW90lK1AoGBAKBCo+i7HiEW/L8OAVMl
epqXTYFijuuXAcSSq4A9bBCB6cMvaWSR7yW/6mU1p6zn6tdgfAAh+2FXoLVERo+d
TjpIZSJq4L1lvQ+Idfq8QUvQBkTfgilG5Fzd8De21E7hGYK1zaycMEiehKPoECwG
dazIgi3XB8PNrT3rW2O5wM9T
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIEDTCCAvWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBQMQswCQYDVQQGEwJVUzEP
MA0GA1UECgwGR29vZ2xlMRMwEQYDVQQLDApFbnRlcnByaXNlMRswGQYDVQQDDBJF
bnRlcnByaXNlIFJvb3QgQ0EwHhcNMjIwMTA5MjIwNTQzWhcNMzIwMTA5MjIwNTQz
WjBXMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGR29vZ2xlMRMwEQYDVQQLDApFbnRl
cnByaXNlMSIwIAYDVQQDDBlFbnRlcnByaXNlIFN1Ym9yZGluYXRlIENBMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzQESuYrJ5UvVzNl6K9HL2wIjKpi1
ZmUNNlDonwIG/8Oqppv8Ll55uK5LsQnPEPjiu6dxeO7LH/YMZDIZMYSn626QKS6c
BQ67WWHp2xvb4zXIpjnwLt6FX++ps8yZNwPnT6ykzUUdTgvDPHziscqv8iBiNJv0
zsmT9syZNfXyFMMQVPvIlE7hB45xjGGnJ5zHSWrIXz0ik4Jh7IBRhM4LM7ki7uVP
q6195cB63L9HHwRzfpaGbusptEymRbnjTYEru/xIHH71JRlBJKI6s5fx1iaAzOHw
4+bQOsvfc3lr5nsyDOPukvne3rLSUPkgSYLtlEvPewp35wHiXlDsEgMs7wIDAQAB
o4HqMIHnMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1Ud
DgQWBBS3urACoee+NMbBBVxmeOW7U12hVDAfBgNVHSMEGDAWgBR8HFvoPrMzCZaS
Mth/RL/MjJOckjBFBggrBgEFBQcBAQQ5MDcwNQYIKwYBBQUHMAKGKWh0dHA6Ly9w
a2kuZXNvZGVtb2FwcDIuY29tL2NhL3Jvb3QtY2EuY2VyMDoGA1UdHwQzMDEwL6At
oCuGKWh0dHA6Ly9wa2kuZXNvZGVtb2FwcDIuY29tL2NhL3Jvb3QtY2EuY3JsMA0G
CSqGSIb3DQEBCwUAA4IBAQDCrrAwdeRQMovu00ws8I3reUIMEdtsFwLRShu0ggVh
GHMH1vGDpdRJoaSpCGdCcPv1IA0BkL6969df1GDUxQOWbiLajyQ5S6fVFgZ/yIbn
3SzMw7Dubig2i9xJo9laPpjjjM/gF6bBSxdhoLUKLFf0e82FCuAPXskeiW7Bc1XB
3ui4xgPNVz3THu8Ma9z/fTJRohrC8t1C/pab7TQpcQR6XkRrX5Sb/MM6TnFew7sD
5cuFT7o/DvbWT42/UP2nuNi591TIGYDJBCKBqnd0AH6Rz+VTyeRUVp4j21ExtzL0
JKmN1S+dmP5W6P1EV+ztEllKEV3N/e6r655wlDG/0y7G
-----END CERTIFICATE-----