@@ -35,33 +35,40 @@ 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+ }
68+ }
69+
70+ if ! allowSkipClientCerts {
71+ tlsConfig .ClientAuth = tls .RequireAndVerifyClientCert
6572 }
6673
6774 if ! settings .HasSetting (config .SocketCAFile ) {
@@ -86,7 +93,6 @@ func loadTLSConfig(settings *SessionSettings) (tlsConfig *tls.Config, err error)
8693
8794 tlsConfig .RootCAs = certPool
8895 tlsConfig .ClientCAs = certPool
89- tlsConfig .ClientAuth = tls .RequireAndVerifyClientCert
9096
9197 return
9298}
0 commit comments