Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
sslproxy.conf(5)		    SSLproxy			sslproxy.conf(5)

NAME
     sslproxy.conf - Configuration file for SSLproxy

DESCRIPTION
     The file sslproxy.conf configures SSLproxy, sslproxy(1).

FILE FORMAT
     The  file	consists of comments and options with arguments. Each line which
     starts with a hash (#) symbol is ignored by the parser. Options  and  argu-
     ments are of the form Option Argument.

     Structured  proxyspecs  are defined between curly braces. The opening curly
     brace should be on the same line as  the  ProxySpec  keyword.  The  closing
     curly brace and option-argument pairs should be on a line of their own.

     The arguments are of the following types:

     BOOL   Boolean value (yes/no).

     STRING
	    String.

     NUMBER
	    Unsigned integer.

DIRECTIVES
     When  an  option  is not used (hashed or doesn't exist in the configuration
     file) sslproxy takes a default action. If an option is defined outside  any
     structured  proxyspec,  then  it  is used as a global default. If an option
     does not have a command line equivalent, -o opt=val option can be	used  to
     override it on the command line.

     Note  that  the ordering of options, rules, and proxyspecs in configuration
     files (and on the command line) is important. For example, rules and  prox-
     yspecs can only make use of the options defined earlier.

     CACert STRING
	    Use CA cert (and key) to sign forged certs. Equivalent to -c command
	    line option.

     CAKey STRING
	    Use CA key (and cert) to sign forged certs. Equivalent to -k command
	    line option.

     ClientCert STRING
	    Use cert from pemfile when destination requests client certs. Equiv-
	    alent to -a command line option.

     ClientKey STRING
	    Use key from pemfile when destination requests client certs. Equiva-
	    lent to -b command line option.

     CAChain STRING
	    Use  CA chain from pemfile (intermediate and root CA certs). Equiva-
	    lent to -C command line option.

     LeafKey STRING
	    Use key from pemfile for leaf certs. Equivalent to -K  command  line
	    option.
	    Default: generate

     LeafCRLURL STRING
	    Use  URL  as CRL distribution point for all forged certs. Equivalent
	    to -q command line option.

     LeafCertDir STRING
	    Use cert+chain+key PEM files from certdir to target all sites match-
	    ing the common names (non-matching: generate if CA).  Equivalent  to
	    -t command line option.

     DefaultLeafCert STRING
	    Use  cert+chain+key  from PEM file for leaf certificates if there is
	    no match in LeafCertDir. Equivalent to -A command line option.

     WriteGenCertsDir STRING
	    Write leaf key and only generated certificates to gendir. Equivalent
	    to -w command line option.

     WriteAllCertsDir STRING
	    Write leaf key and all certificates to gendir. Equivalent to -W com-
	    mand line option.

     DenyOCSP BOOL
	    Deny all OCSP requests on all proxyspecs. Equivalent to  -O  command
	    line option.

     Passthrough BOOL
	    Passthrough  SSL  connections  if  they  cannot  be split because of
	    client cert auth or no matching cert and no  CA.  Equivalent  to  -P
	    command line option.
	    Default: drop

     DHGroupParams STRING
	    Use  DH group params from pemfile. Equivalent to -g command line op-
	    tion.
	    Default: keyfiles or auto

     ECDHCurve STRING
	    Use ECDH named curve. Equivalent to -G command line option.
	    Default: prime256v1

     SSLCompression BOOL
	    Enable/disable SSL/TLS compression on all connections. Equivalent to
	    -Z command line option.

     ForceSSLProto STRING
	    Force SSL/TLS protocol version only. Equivalent to -r  command  line
	    option.
	    Default: all

     DisableSSLProto STRING
	    Disable  SSL/TLS protocol version. Equivalent to -R command line op-
	    tion.
	    Default: none

     EnableSSLProto STRING
	    Enable SSL/TLS protocol version. Equivalent to -B command  line  op-
	    tion.
	    Default: all

     MinSSLProto STRING
	    Min SSL/TLS protocol version.
	    Default: tls10

     MaxSSLProto STRING
	    Max SSL/TLS protocol version.
	    Default: tls13

     Ciphers STRING
	    Use  the  given  OpenSSL ciphers spec. Equivalent to -s command line
	    option.
	    Default: ALL:-aNULL

     CipherSuites STRING
	    Use the given OpenSSL ciphersuites spec. The  ciphersuites	spec  is
	    for TLS 1.3.  Equivalent to -U command line option.
	    Default:
	    TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

     LeafKeyRSABits NUMBER
	    Leaf key RSA keysize in bits, use 1024|2048|3072|4096.
	    Default: 2048

     OpenSSLEngine STRING
	    The  OpenSSL  engine to activate.  Equivalent to -x command line op-
	    tion.

     NATEngine STRING
	    Specify default NAT engine to use. Equivalent to -e command line op-
	    tion.

     User STRING
	    Drop privileges to user. Equivalent to -u command line option.
	    Default: nobody, if run as root

     Group STRING
	    Drop privileges to group. Equivalent to -m command line option.
	    Default: Primary group of user

     Chroot STRING
	    chroot() to  jaildir  (impacts  sni  proxyspecs,  see  sslproxy(1)).
	    Equivalent to -j command line option.

     PidFile STRING
	    Write pid to file. Equivalent to -p command line option.

     ConnectLog STRING
	    Connect log: log one line summary per connection to logfile. Equiva-
	    lent to -l command line option.

     ContentLog STRING
	    Content  log:  full  data  to  file or named pipe (excludes Content-
	    LogDir/ContentLogPathSpec). Equivalent to -L command line option.

     ContentLogDir STRING
	    Content log: full data to separate files in dir  (excludes	Content-
	    Log/ContentLogPathSpec). Equivalent to -S command line option.

     ContentLogPathSpec STRING
	    Content  log: full data to sep files with % subst (excludes Content-
	    Log/ContentLogDir). Equivalent to -F command line option.

     LogProcInfo BOOL
	    Look up local process owning each connection for logging. Equivalent
	    to -i command line option.

     PcapLog STRING
	    Pcap log: packets to pcapfile (excludes PcapLogDir/PcapLogPathSpec).
	    Equivalent to -X command line option.

     PcapLogDir STRING
	    Pcap   log:   packets   to	 separate   files   in	 dir   (excludes
	    PcapLog/PcapLogPathSpec).  Equivalent to -Y command line option.

     PcapLogPathSpec STRING
	    Pcap   log:   packets   to	 sep   files   with  %	subst  (excludes
	    PcapLog/PcapLogDir).  Equivalent to -y command line option.

     MirrorIf STRING
	    Mirror packets to interface. Equivalent to -I command line option.

     MirrorTarget STRING
	    Mirror packets to target address (used with MirrorIf). Not	used  if
	    the  target  is irrelevant (e.g. mirror to dummy device). Equivalent
	    to -T command line option.

     MasterKeyLog STRING
	    Log master keys to logfile in SSLKEYLOGFILE format. Equivalent to -M
	    command line option.

     Daemon BOOL
	    Daemon mode: run in background, log error messages to syslog. Equiv-
	    alent to -d command line option.

     Debug BOOL
	    Debug mode: run in foreground, log debug messages on stderr. Equiva-
	    lent to -D command line option.

     DebugLevel NUMBER
	    Verbose debug level, 2-4.

     ConnIdleTimeout NUMBER
	    Close connections after this many seconds of idle time.
	    Default: 120

     ExpiredConnCheckPeriod NUMBER
	    Check for expired connections every this many seconds.
	    Default: 10.

     LogStats BOOL
	    Log statistics to syslog. Equivalent to -J command line option.
	    Default: yes

     StatsPeriod NUMBER
	    Log statistics every this many ExpiredConnCheckPeriod periods.
	    Default: 1

     RemoveHTTPAcceptEncoding BOOL
	    Remove HTTP header line for Accept-Encoding.
	    Default: yes

     RemoveHTTPReferer BOOL
	    Remove HTTP header line for Referer.
	    Default: yes

     VerifyPeer BOOL
	    Verify peer using default certificates.
	    Default: yes

     AllowWrongHost BOOL
	    When disabled, never add the SNI to forged certificates, even if the
	    SNI provided by the client does not match the  server  certificate's
	    CN/SAN. Helps pass the wrong.host test at https://badssl.com.
	    Default: no

     UserAuth BOOL
	    Require authentication for users to use SSLproxy.
	    Default: no

     DivertUsers STRING
	    Comma  separated list of users. Connections from these users are di-
	    verted to listening programs. Users not  listed  in  DivertUsers  or
	    PassUsers are blocked.  Max of 50 users can be listed.

     PassUsers STRING
	    Comma separated list of users. Connections from these users are sim-
	    ply  passed  through to their original destinations, not diverted to
	    listening programs.  Users not listed in  DivertUsers  or  PassUsers
	    are blocked.  Max of 50 users can be listed.

     UserDBPath STRING
	    Path to user db file.

     UserTimeout NUMBER
	    Time users out after this many seconds of idle time.
	    Default: 300.

     UserAuthURL STRING
	    Redirect URL for users to log in to the system.

     ValidateProto BOOL
	    Validate proxy spec protocols.
	    Default: no

     MaxHTTPHeaderSize NUMBER
	    Max HTTP header size in bytes for protocol validation.
	    Default: 8192.

     OpenFilesLimit NUMBER
	    Set open files limit, use 50-10000.
	    Default: System-wide limit.

     Divert BOOL
	    Set  divert  or  split mode of operation, globally or per-proxyspec.
	    The Divert option is not equivalent to the command line -n option.
	    Default: yes

     PassSite STRING
	    Passthrough site: site[*] [(clientaddr|user|*) [description  desc]].
	    PassSite  option is a special form of Pass filtering rule. All Pass-
	    Site rules can be written as Pass filter rules. The PassSite  option
	    will  be  deprecated  in favor of filter rules in the future. If the
	    site matches SNI or common names in the SSL certificate, the connec-
	    tion is passed through the proxy. Per site filters	can  be  defined
	    using  client  IP addresses, users, and description. '*' matches all
	    client IP addresses or users. User auth should be enabled  for  user
	    and  description  filtering  to work. Case is ignored while matching
	    description.  Multiple sites are allowed, one on each line. PassSite
	    rules can search for exact or substring matches. Append an	asterisk
	    to	the site field to search for substring match. Note that the sub-
	    string search is not a regex or wildcard search, and that the aster-
	    isk at the end is removed before search.

     Include STRING
	    Load configuration from an include file.

	    Recursive include files are not allowed. The Include  option  cannot
	    be used in include files.

     Define STRING
	    Define  macro  to be used in filtering rules. Macro names must start
	    with a $ char. The macro name must be followed  by	words  separated
	    with spaces. For example,

		 Define $macro value1 value2

	    Recursive macro definitions are not allowed.

     Divert STRING
	    Divert filtering rule diverts packets to listening program, allowing
	    SSL inspection by listening program and content logging of packets.

     Split STRING
	    Split filtering rule splits the connection but does not divert pack-
	    ets  to  listening	program, effectively disabling SSL inspection by
	    listening program, but allowing content logging of packets.

     Pass STRING
	    Pass filtering  rule  passes  the  connection  through  by	engaging
	    passthrough  mode,	effectively disabling SSL inspection and content
	    logging of packets.

     Block STRING
	    Block filtering rule terminates the connection.

     Match STRING
	    Match filtering rule specifies log actions for the connection  with-
	    out changing its filter action.

	    The syntax of one line filtering rules is as follows:

	    (Divert|Split|Pass|Block|Match)
	     ([from (
		 user (username[*]|$macro|*) [desc (desc[*]|$macro|*)]|
		 desc (desc[*]|$macro|*)|
		 ip (clientip[*]|$macro|*)|
		 *)]
	      [to (
		 (sni (servername[*]|$macro|*)|
		  cn (commonname[*]|$macro|*)|
		  host (host[*]|$macro|*)|
		  uri (uri[*]|$macro|*)|
		  ip (serverip[*]|$macro|*)) [port (serverport[*]|$macro|*)]|
		 port (serverport[*]|$macro|*)|
		 *)]
	      [log ([[!]connect] [[!]master] [[!]cert]
		    [[!]content] [[!]pcap] [[!]mirror] [$macro]|[!]*)]
	      |*) [# comment]

	    See sslproxy(1) for the details.

     FilterRule {
	    Action
	    User
	    Desc
	    SrcIp
	    SNI
	    CN
	    Host
	    URI
	    DstIp
	    DstPort
	    Log
	    ReconnectSSL
	    Passthrough
	    DenyOCSP
	    CACert
	    CAKey
	    ClientCert
	    ClientKey
	    CAChain
	    LeafCRLURL
	    DHGroupParams
	    ECDHCurve
	    SSLCompression
	    ForceSSLProto
	    DisableSSLProto
	    EnableSSLProto
	    MinSSLProto
	    MaxSSLProto
	    Ciphers
	    CipherSuites
	    VerifyPeer
	    AllowWrongHost
	    RemoveHTTPAcceptEncoding
	    RemoveHTTPReferer
	    MaxHTTPHeaderSize
	    ValidateProto
	    UserAuth
	    UserTimeout
	    UserAuthURL
	    }
	    Structured	filtering rules can specify connection options to be se-
	    lectively applied to matching connections, not just per-proxyspec or
	    globally. One line filtering rules	cannot	specify  connection  op-
	    tions.

	    See sslproxy(1) for the details.

     ProxySpec STRING
	    One  line  proxy specification: type listenaddr+port up:port ua:addr
	    ra:addr.  The other options of one line proxyspecs are  set  to  the
	    global configuration preceding them. Multiple specs are allowed, one
	    on each line.

     ProxySpec {
	    Proto
	    Addr
	    Port
	    DivertPort
	    DivertAddr
	    ReturnAddr
	    TargetAddr
	    TargetPort
	    SNIPort
	    NatEngine
	    Divert
	    Passthrough
	    DenyOCSP
	    CACert
	    CAKey
	    ClientCert
	    ClientKey
	    CAChain
	    LeafCRLURL
	    DHGroupParams
	    ECDHCurve
	    SSLCompression
	    ForceSSLProto
	    DisableSSLProto
	    EnableSSLProto
	    MinSSLProto
	    MaxSSLProto
	    Ciphers
	    CipherSuites
	    VerifyPeer
	    AllowWrongHost
	    RemoveHTTPAcceptEncoding
	    RemoveHTTPReferer
	    MaxHTTPHeaderSize
	    ValidateProto
	    UserAuth
	    UserTimeout
	    UserAuthURL
	    DivertUsers
	    PassUsers
	    PassSite
	    Define
	    (Divert|Split|Pass|Block|Match) one line filtering rules
	    FilterRule {...} structured filtering rules
	    }

	    Structured	proxy  specifications  may consist of the options listed
	    above. The Addr and Port options are mandatory,  and  equivalent  to
	    the  listenaddr  and  port	options  in one line proxyspecs, respec-
	    tively. If an option is not specified, the global default  value  is
	    used.

FILES
     /etc/sslproxy/sslproxy.conf

AUTHOR
     The config file facility was added by Soner Tari <sonertari@gmail.com>.

SEE ALSO
     sslproxy(1)

v0.9.9				   09 Nov 2025			sslproxy.conf(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sslproxy.conf&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help