Hello. Recently we ran into a problem with Rebex.Net.Ews mail client with http proxy set through Rebex.Net.Ews.Proxy property. It appears that this proxy is not used when server certificate revocation check is performed and connection fails:
2022-02-17 10:33:26.840 DEBUG Ews(1)[1] EWS: Executing Connect method.
2022-02-17 10:33:26.862 DEBUG Ews(1)[1] Info: Culture: en; windows-1252
2022-02-17 10:33:26.864 DEBUG Ews(1)[1] HTTP: Connecting to 'https://xxxx.xx:443'...
2022-02-17 10:33:26.865 DEBUG Ews(1)[1] Info: Assembly: Rebex.Networking R6.1 for .NET 5.0
2022-02-17 10:33:26.865 DEBUG Ews(1)[1] Info: Platform: Windows 10.0.14393 64-bit; CLR: .NET 6.0.2
2022-02-17 10:33:26.865 DEBUG Ews(1)[1] Info: Culture: en; windows-1252
2022-02-17 10:33:26.881 DEBUG Ews(1)[1] Proxy: Resolving 'yyyy.yy'.
2022-02-17 10:33:26.897 DEBUG Ews(1)[1] Proxy: Connecting to HTTP CONNECT proxy at yyyy.yy:8080.
2022-02-17 10:33:26.901 DEBUG Ews(1)[1] Proxy: Connection established.
2022-02-17 10:33:26.909 DEBUG Ews(1)[1] Proxy: Connection initialized successfully.
2022-02-17 10:33:26.987 DEBUG Ews(1)[1] TLS: Using classic TLS core.
2022-02-17 10:33:27.030 DEBUG Ews(1)[1] TLS: Enabled cipher suites: 0x000F3DF7EBE00640.
2022-02-17 10:33:27.105 DEBUG Ews(1)[1] TLS: Applicable cipher suites: 0x000F3DF7EBE00640.
2022-02-17 10:33:27.117 DEBUG Ews(1)[1] TLS: HandshakeMessage:ClientHello was sent.
2022-02-17 10:33:27.151 DEBUG Ews(1)[1] TLS: HandshakeMessage:ServerHello was received.
2022-02-17 10:33:27.153 DEBUG Ews(1)[1] TLS: Negotiating TLS 1.2, RSA with ephemeral ECDH, AES with 256-bit key in GCM mode, AEAD.
2022-02-17 10:33:27.155 DEBUG Ews(1)[1] TLS: The server supports secure renegotiation.
2022-02-17 10:33:27.157 DEBUG Ews(1)[1] TLS: HandshakeMessage:Certificate was received.
2022-02-17 10:33:27.187 DEBUG Ews(1)[1] TLS: HandshakeMessage:ServerKeyExchange was received.
2022-02-17 10:33:27.187 DEBUG Ews(1)[1] TLS: HandshakeMessage:ServerHelloDone was received.
2022-02-17 10:33:27.196 DEBUG Ews(1)[1] TLS: Verifying server certificate ('CN=*.xxxx.xx').
2022-02-17 10:34:42.284 DEBUG Ews(1)[1] TLS: Certificate verification status: UnknownRev, OfflineRev (0x01000040)
2022-02-17 10:34:42.286 DEBUG Ews(1)[1] TLS: Certificate verification result: RevocationCheckFailed
2022-02-17 10:34:42.298 DEBUG Ews(1)[1] TLS: Error while processing TLS packet: Rebex.Net.TlsException: Unable to perform revocation check of the server certificate.
at kautv.zjhol.oluuc(String p0, String p1, CertificateChain p2)
at kautv.zjhol.ffyfp(Byte[] p0, Int32 p1, Int32 p2, nufvk p3)
at kautv.zjhol.hfrvv(Byte[] p0, Int32 p1, Int32 p2)
at kautv.xvxgb.vrsuc(Byte[] p0, Int32 p1, Int32 p2)
at kautv.xvxgb.wwkxd()
2022-02-17 10:34:42.302 DEBUG Ews(1)[1] TLS: Fatal Alert:CertificateUnknown was sent.
2022-02-17 10:34:42.306 ERROR Ews(1)[1] EWS: Connect failed: Rebex.Net.TlsException: Unable to perform revocation check of the server certificate.
---> Rebex.Net.TlsException: Unable to perform revocation check of the server certificate.
at kautv.zjhol.oluuc(String p0, String p1, CertificateChain p2)
at kautv.zjhol.ffyfp(Byte[] p0, Int32 p1, Int32 p2, nufvk p3)
at kautv.zjhol.hfrvv(Byte[] p0, Int32 p1, Int32 p2)
at kautv.xvxgb.vrsuc(Byte[] p0, Int32 p1, Int32 p2)
at kautv.xvxgb.wwkxd()
When I set up proxy in the OS, certificate revocation check passes and client connetcts to server. Unfortunately we cannot set up proxy in the OS for the production environment due to security policy. Is it possible to set up proxy in Rebex library so it is used also for revocation check?