acme: set correct KeyUsage and ExtKeyUsage
A certificate must have the Server Auth Extended Key Usage to be used for TLS, and an ECDSA certificate must have the Digital Signature Key Usage to be used at all (you can't encrypt to an ECDSA key). crypto/tls ignores (E)KUs when serving certificates, and most browsers do as well, so it works, but OpenSSL would refuse to serve these certificates, and clients would be allowed to reject them. Change-Id: I699e58e613f01077e6b67fdb9e789d46e1672112 Reviewed-on: https://go-review.googlesource.com/39913 Run-TryBot: Alex Vaghin <ddos@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alex Vaghin <ddos@google.com>
This commit is contained in:
committed by
Alex Vaghin
parent
c2303dcbe8
commit
420870623a
+2
-1
@@ -974,7 +974,8 @@ func tlsChallengeCert(san []string, opt []CertOption) (tls.Certificate, error) {
|
||||
NotBefore: time.Now(),
|
||||
NotAfter: time.Now().Add(24 * time.Hour),
|
||||
BasicConstraintsValid: true,
|
||||
KeyUsage: x509.KeyUsageKeyEncipherment,
|
||||
KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
|
||||
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
|
||||
}
|
||||
}
|
||||
tmpl.DNSNames = san
|
||||
|
||||
Reference in New Issue
Block a user