Files
bpfire/config/ovpn/openssl/ovpn.cnf
Adolf Belka 16d664b2bd ovpn.cnf: Removal of SKID & AKID from server section - Fixes Bug#13595
- The update to openssl-3.2.x introduced a bug fix which now gives an error if the
   subjectKeyIdentifier (SKID) or authorityKeyIdentifier (AKID) is in the x509 extensions
   for a CSR.
- See the following discssion in the openssl github issues
   https://github.com/openssl/openssl/issues/22966#issuecomment-1858396738
- The SKID & AKID should never have been specified in the CSR but due to a bug they were
   never flagged with an error, just ignored. Since the bug fix for that bug was put into
   OpenSSL-3.2.0 the prescence of the SKID & AKID in the CSR causes an error to be flagged.
- The consequence of this is that in CU183 trying to create a new x509 root/host
   certificate gives an error when the CSR is generated so only the root certificate is
   created and not the host certificate.
- Tested out the removal of the SKID & AKID lines from the [ server ] section of the
   ovpn.cnf file and the root/host certificate set was created without any issue.
- Then tested the creation of a RW client connection and that worked with no problems. Also
   creating a fresh N2N connection worked without any problems.
- Also tested restoring from an earlier backup. The RW and N2N connections worked without
   issues with the AKID and SKID missing from the [ server ] section.
- It would be good if this could be merged into CU184 for final testing.

Fixes: Bug#13595
Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-03-04 20:53:51 +00:00

103 lines
2.5 KiB
INI

HOME = .
oid_section = new_oids
[ new_oids ]
[ ca ]
default_ca = openvpn
[ openvpn ]
dir = /var/ipfire/ovpn
certs = $dir/certs
crl_dir = $dir/crl
database = $dir/certs/index.txt
new_certs_dir = $dir/certs
certificate = $dir/ca/cacert.pem
serial = $dir/certs/serial
crl = $dir/crl.pem
private_key = $dir/ca/cakey.pem
x509_extensions = usr_cert
default_days = 999999
default_crl_days = 30
default_md = sha256
preserve = no
policy = policy_match
email_in_dn = no
[ policy_match ]
countryName = optional
stateOrProvinceName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
x509_extensions = v3_ca
string_mask = nombstr
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = GB
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default =
localityName = Locality Name (eg, city)
#localityName_default =
0.organizationName = Organization Name (eg, company)
0.organizationName_default = My Company Ltd
organizationalUnitName = Organizational Unit Name (eg, section)
#organizationalUnitName_default =
commonName = Common Name (eg, your name or your server\'s hostname)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 40
[ req_attributes ]
challengePassword = A challenge password
challengePassword_min = 4
challengePassword_max = 20
unstructuredName = An optional company name
[ usr_cert ]
basicConstraints = CA:FALSE
nsComment = "OpenSSL Generated Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
extendedKeyUsage = clientAuth
keyUsage = digitalSignature
[ server ]
# JY ADDED -- Make a cert with nsCertType set to "server"
basicConstraints = CA:FALSE
nsCertType = server
nsComment = "OpenSSL Generated Server Certificate"
extendedKeyUsage = serverAuth
keyUsage = digitalSignature, keyEncipherment
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
[ v3_ca ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer:always
basicConstraints = CA:true
[ crl_ext ]
authorityKeyIdentifier = keyid:always,issuer:always
[ engine ]
default = openssl