feat(auth): konfigurierbare TLS-Mindestversion fuer den Verzeichnisdienst
Domain Controller auf Windows Server 2012 R2 koennen TLS 1.2 per Registry deaktiviert haben. ad.min_tls_version (Default 1.2) erlaubt es, fuer solche Altsysteme auf 1.0/1.1 herunterzugehen; das Portal warnt dann bei jedem Start. Die Zertifikatspruefung bleibt in jedem Fall aktiv — fuer LDAP gibt es weiterhin keine Insecure-Option. Im Legacy-Modus kommen lediglich die CBC-SHA256-Suiten hinzu, die Go als unsicher einstuft; RC4, 3DES und Suiten ohne Forward Secrecy werden nie angeboten. README dokumentiert zusaetzlich die beiden anderen 2012-R2-Stolpersteine: SHA-1-signierte DC-Zertifikate (seit Go 1.24 nicht mehr umgehbar) und RSA-Schluesselaustausch (nur ueber GODEBUG=tlsrsakex=1). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBHF4R9EAejDJUMdwr6C68
This commit is contained in:
parent
a2bce25424
commit
0fc2d8808b
10 changed files with 299 additions and 25 deletions
|
|
@ -31,7 +31,10 @@ type Options struct {
|
|||
BindPassword string
|
||||
VPNGroup string
|
||||
CAFile string
|
||||
Timeout time.Duration
|
||||
// MinTLSVersion ist die niedrigste akzeptierte TLS-Version (Konstante aus
|
||||
// crypto/tls). 0 bedeutet TLS 1.2.
|
||||
MinTLSVersion uint16
|
||||
Timeout time.Duration
|
||||
|
||||
// Dial ist injizierbar; nil = echte LDAP-Verbindung.
|
||||
Dial func(ctx context.Context, server string) (conn, error)
|
||||
|
|
@ -73,7 +76,7 @@ func NewAD(opts Options) (*AD, error) {
|
|||
opts.Port = 636
|
||||
}
|
||||
if opts.Dial == nil {
|
||||
opts.Dial = realDialer(opts.Port, opts.TLSMode, opts.CAFile, opts.Timeout)
|
||||
opts.Dial = realDialer(opts.Port, opts.TLSMode, opts.CAFile, opts.MinTLSVersion, opts.Timeout)
|
||||
}
|
||||
a := &AD{opts: opts}
|
||||
if opts.OnFailover != nil {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue