Class SelfSignedMitmManager

java.lang.Object
org.littleshoot.proxy.extras.SelfSignedMitmManager
All Implemented Interfaces:
MitmManager

public class SelfSignedMitmManager extends Object implements MitmManager
MitmManager that uses self-signed certs for everything.
  • Field Details

  • Constructor Details

    • SelfSignedMitmManager

      public SelfSignedMitmManager()
    • SelfSignedMitmManager

      public SelfSignedMitmManager(SelfSignedSslEngineSource selfSignedSslEngineSource)
  • Method Details

    • serverSslEngine

      public SSLEngine serverSslEngine(String peerHost, int peerPort)
      Description copied from interface: MitmManager
      Creates an SSLEngine for encrypting the server connection. The SSLEngine created by this method may use the given peer information to send SNI information when connecting to the upstream host.
      Specified by:
      serverSslEngine in interface MitmManager
      Parameters:
      peerHost - to start a client connection to the server.
      peerPort - to start a client connection to the server.
      Returns:
      an SSLEngine used to connect to an upstream server
    • serverSslEngine

      public SSLEngine serverSslEngine()
      Description copied from interface: MitmManager
      Creates an SSLEngine for encrypting the server connection.
      Specified by:
      serverSslEngine in interface MitmManager
      Returns:
      an SSLEngine used to connect to an upstream server
    • clientSslEngineFor

      public SSLEngine clientSslEngineFor(HttpRequest httpRequest, SSLSession serverSslSession)
      Description copied from interface: MitmManager

      Creates an SSLEngine for encrypting the client connection based on the given serverSslSession.

      The serverSslSession is provided in case this method needs to inspect the server's certificates or something else about the encryption on the way to the server.

      This is the place where one would implement impersonation of the server by issuing replacement certificates signed by the proxy's own certificate.

      Specified by:
      clientSslEngineFor in interface MitmManager
      Parameters:
      httpRequest - the HTTP CONNECT request that is being man-in-the-middled
      serverSslSession - the SSLSession that's been established with the server
      Returns:
      the SSLEngine used to connect to the client