diff options
Diffstat (limited to 'caddyconfig/httpcaddyfile')
| -rw-r--r-- | caddyconfig/httpcaddyfile/httptype.go | 14 | 
1 files changed, 12 insertions, 2 deletions
diff --git a/caddyconfig/httpcaddyfile/httptype.go b/caddyconfig/httpcaddyfile/httptype.go index b7d16d8..2d8accc 100644 --- a/caddyconfig/httpcaddyfile/httptype.go +++ b/caddyconfig/httpcaddyfile/httptype.go @@ -332,6 +332,11 @@ func (st *ServerType) serversFromPairings(  	servers := make(map[string]*caddyhttp.Server)  	defaultSNI := tryString(options["default_sni"], warnings) +	httpPort := strconv.Itoa(caddyhttp.DefaultHTTPPort) +	if hp, ok := options["http_port"].(int); ok { +		httpPort = strconv.Itoa(hp) +	} +  	for i, p := range pairings {  		srv := &caddyhttp.Server{  			Listen: p.addresses, @@ -369,7 +374,7 @@ func (st *ServerType) serversFromPairings(  			return specificity(iLongestHost) > specificity(jLongestHost)  		}) -		var hasCatchAllTLSConnPolicy bool +		var hasCatchAllTLSConnPolicy, usesTLS bool  		// create a subroute for each site in the server block  		for _, sblock := range p.serverBlocks { @@ -419,6 +424,9 @@ func (st *ServerType) serversFromPairings(  						srv.AutoHTTPS.Skip = append(srv.AutoHTTPS.Skip, addr.Host)  					}  				} +				if addr.Scheme != "http" && addr.Host != "" && addr.Port != httpPort { +					usesTLS = true +				}  			}  			// set up each handler directive, making sure to honor directive order @@ -481,7 +489,9 @@ func (st *ServerType) serversFromPairings(  		// TODO: maybe a smarter way to handle this might be to just make the  		// auto-HTTPS logic at provision-time detect if there is any connection  		// policy missing for any HTTPS-enabled hosts, if so, add it... maybe? -		if !hasCatchAllTLSConnPolicy && (len(srv.TLSConnPolicies) > 0 || defaultSNI != "") { +		if usesTLS && +			!hasCatchAllTLSConnPolicy && +			(len(srv.TLSConnPolicies) > 0 || defaultSNI != "") {  			srv.TLSConnPolicies = append(srv.TLSConnPolicies, &caddytls.ConnectionPolicy{DefaultSNI: defaultSNI})  		}  | 
