@@ -35,33 +35,36 @@ func loadTLSConfig(settings *SessionSettings) (tlsConfig *tls.Config, err error)
3535 }
3636
3737 if ! settings .HasSetting (config .SocketPrivateKeyFile ) && ! settings .HasSetting (config .SocketCertificateFile ) {
38- if allowSkipClientCerts {
39- tlsConfig = defaultTLSConfig ()
40- tlsConfig .ServerName = serverName
41- tlsConfig .InsecureSkipVerify = insecureSkipVerify
42- setMinVersionExplicit (settings , tlsConfig )
38+ if ! allowSkipClientCerts {
39+ return
4340 }
44- return
45- }
46-
47- privateKeyFile , err := settings .Setting (config .SocketPrivateKeyFile )
48- if err != nil {
49- return
50- }
51-
52- certificateFile , err := settings .Setting (config .SocketCertificateFile )
53- if err != nil {
54- return
5541 }
5642
5743 tlsConfig = defaultTLSConfig ()
58- tlsConfig .Certificates = make ([]tls.Certificate , 1 )
5944 tlsConfig .ServerName = serverName
6045 tlsConfig .InsecureSkipVerify = insecureSkipVerify
6146 setMinVersionExplicit (settings , tlsConfig )
6247
63- if tlsConfig .Certificates [0 ], err = tls .LoadX509KeyPair (certificateFile , privateKeyFile ); err != nil {
64- return
48+ if settings .HasSetting (config .SocketPrivateKeyFile ) && settings .HasSetting (config .SocketCertificateFile ) {
49+
50+ var privateKeyFile string
51+ var certificateFile string
52+
53+ privateKeyFile , err = settings .Setting (config .SocketPrivateKeyFile )
54+ if err != nil {
55+ return
56+ }
57+
58+ certificateFile , err = settings .Setting (config .SocketCertificateFile )
59+ if err != nil {
60+ return
61+ }
62+
63+ tlsConfig .Certificates = make ([]tls.Certificate , 1 )
64+
65+ if tlsConfig .Certificates [0 ], err = tls .LoadX509KeyPair (certificateFile , privateKeyFile ); err != nil {
66+ return
67+ }
6568 }
6669
6770 if ! settings .HasSetting (config .SocketCAFile ) {
@@ -86,7 +89,10 @@ func loadTLSConfig(settings *SessionSettings) (tlsConfig *tls.Config, err error)
8689
8790 tlsConfig .RootCAs = certPool
8891 tlsConfig .ClientCAs = certPool
89- tlsConfig .ClientAuth = tls .RequireAndVerifyClientCert
92+
93+ if ! allowSkipClientCerts {
94+ tlsConfig .ClientAuth = tls .RequireAndVerifyClientCert
95+ }
9096
9197 return
9298}
0 commit comments