Matthew Holt
6 years ago
No known key found for this signature in database
GPG Key ID: 2A349DD577D586A5
2 changed files with
13 additions and
0 deletions
modules/caddyhttp/caddyhttp.go
modules/caddytls/connpolicy.go
@ -326,6 +326,18 @@ func (app *App) automaticHTTPS() error {
continue
continue
}
}
// if all listeners are on the HTTPS port, make sure
// there is at least one TLS connection policy; it
// should be obvious that they want to use TLS without
// needing to specify one empty policy to enable it
if ! srv . listenersUseAnyPortOtherThan ( app . httpsPort ( ) ) && len ( srv . TLSConnPolicies ) == 0 {
app . logger . Info ( "server is only listening on the HTTPS port but has no TLS connection policies; adding one to enable TLS" ,
zap . String ( "server_name" , srvName ) ,
zap . Int ( "https_port" , app . httpsPort ( ) ) ,
)
srv . TLSConnPolicies = append ( srv . TLSConnPolicies , new ( caddytls . ConnectionPolicy ) )
}
// find all qualifying domain names, de-duplicated
// find all qualifying domain names, de-duplicated
domainSet := make ( map [ string ] struct { } )
domainSet := make ( map [ string ] struct { } )
for routeIdx , route := range srv . Routes {
for routeIdx , route := range srv . Routes {
@ -106,6 +106,7 @@ func (cp ConnectionPolicies) TLSConfig(ctx caddy.Context) (*tls.Config, error) {
}
}
// ConnectionPolicy specifies the logic for handling a TLS handshake.
// ConnectionPolicy specifies the logic for handling a TLS handshake.
// An empty policy is valid; safe and sensible defaults will be used.
type ConnectionPolicy struct {
type ConnectionPolicy struct {
// How to match this policy with a TLS ClientHello. If
// How to match this policy with a TLS ClientHello. If
// this policy is the first to match, it will be used.
// this policy is the first to match, it will be used.