summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRich Salz <rsalz@openssl.org>2016-06-12 22:21:54 -0400
committerRich Salz <rsalz@openssl.org>2016-06-13 09:18:22 -0400
commita7be5759cf9d8e2bf7c1ecd0efa2d53aae9ab706 (patch)
treead030fac8b3b0582d0dd76e16dfe5cd2158ba5e0
parent7d6284057b66458f6c99bd65ba67377d63411090 (diff)
RT3809: basicConstraints is critical
This is really a security bugfix, not enhancement any more. Everyone knows critical extensions. Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
-rw-r--r--apps/openssl-vms.cnf6
-rw-r--r--apps/openssl.cnf6
-rw-r--r--doc/apps/req.pod2
-rw-r--r--test/CAss.cnf2
-rwxr-xr-xtest/certs/mkcert.sh4
5 files changed, 6 insertions, 14 deletions
diff --git a/apps/openssl-vms.cnf b/apps/openssl-vms.cnf
index 5b3a27fc4b..0092a650cb 100644
--- a/apps/openssl-vms.cnf
+++ b/apps/openssl-vms.cnf
@@ -233,11 +233,7 @@ subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
-# This is what PKIX recommends but some broken software chokes on critical
-# extensions.
-#basicConstraints = critical,CA:true
-# So we do this instead.
-basicConstraints = CA:true
+basicConstraints = critical,CA:true
# Key usage: this is typical for a CA certificate. However since it will
# prevent it being used as an test self-signed certificate it is best
diff --git a/apps/openssl.cnf b/apps/openssl.cnf
index 53c4bef044..b3e7444e5f 100644
--- a/apps/openssl.cnf
+++ b/apps/openssl.cnf
@@ -233,11 +233,7 @@ subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
-# This is what PKIX recommends but some broken software chokes on critical
-# extensions.
-#basicConstraints = critical,CA:true
-# So we do this instead.
-basicConstraints = CA:true
+basicConstraints = critical,CA:true
# Key usage: this is typical for a CA certificate. However since it will
# prevent it being used as an test self-signed certificate it is best
diff --git a/doc/apps/req.pod b/doc/apps/req.pod
index a891c3eeef..299d092799 100644
--- a/doc/apps/req.pod
+++ b/doc/apps/req.pod
@@ -543,7 +543,7 @@ Sample configuration file prompting for field values:
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
- basicConstraints = CA:true
+ basicConstraints = critical, CA:true
Sample configuration containing all field values:
diff --git a/test/CAss.cnf b/test/CAss.cnf
index 336e82fd52..b20a242760 100644
--- a/test/CAss.cnf
+++ b/test/CAss.cnf
@@ -71,6 +71,6 @@ emailAddress = optional
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
-basicConstraints = CA:true,pathlen:1
+basicConstraints = critical,CA:true,pathlen:1
keyUsage = cRLSign, keyCertSign
issuerAltName=issuer:copy
diff --git a/test/certs/mkcert.sh b/test/certs/mkcert.sh
index ec2e374038..daa0679ee8 100755
--- a/test/certs/mkcert.sh
+++ b/test/certs/mkcert.sh
@@ -88,7 +88,7 @@ genroot() {
local skid="subjectKeyIdentifier = hash"
local akid="authorityKeyIdentifier = keyid"
- exts=$(printf "%s\n%s\n%s\n" "$skid" "$akid" "basicConstraints = CA:true")
+ exts=$(printf "%s\n%s\n%s\n" "$skid" "$akid" "basicConstraints = critical,CA:true")
for eku in "$@"
do
exts=$(printf "%s\nextendedKeyUsage = %s\n" "$exts" "$eku")
@@ -107,7 +107,7 @@ genca() {
local skid="subjectKeyIdentifier = hash"
local akid="authorityKeyIdentifier = keyid"
- exts=$(printf "%s\n%s\n%s\n" "$skid" "$akid" "basicConstraints = CA:true")
+ exts=$(printf "%s\n%s\n%s\n" "$skid" "$akid" "basicConstraints = critical,CA:true")
for eku in "$@"
do
exts=$(printf "%s\nextendedKeyUsage = %s\n" "$exts" "$eku")