eN_*_*Joy 12 ssl openssl openvpn
我在Ubuntu 14.04盒子上运行openvpn.设置很好,直到OpenSSL升级,然后当我尝试使用easy-rsa创建新的客户端证书时,我得到了以下消息:
root@:easy-rsa# ./pkitool onokun
Using Common Name: onokun
Generating a 2048 bit RSA private key
.+++
........+++
writing new private key to 'onokun.key'
-----
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
Error Loading extension section usr_cert
3074119356:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_lib.c:335:group=CA_default name=email_in_dn
3074119356:error:2207507C:X509 V3 routines:v2i_GENERAL_NAME_ex:missing value:v3_alt.c:537:
3074119356:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:v3_conf.c:93:name=subjectAltName, value=onokun
Run Code Online (Sandbox Code Playgroud)
此问题与报告的错误不同,即which opensslcnf脚本无法找到openssl.cnf要使用的匹配版本(上面的消息显示openssl-1.0.0.cnf).我进行了谷歌搜索,但没有找到答案.
以下是一些环境信息:
## openvpn
OpenVPN 2.3.2 i686-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Feb 4 2014
Originally developed by James Yonan
## openssl
OpenSSL 1.0.1f 6 Jan 2014
## dpkg --get-selections | grep ssl
libgnutls-openssl27:i386 install
libio-socket-ssl-perl install
libnet-smtp-ssl-perl install
libnet-ssleay-perl install
libssl-dev:i386 install
libssl-doc install
libssl0.9.8:i386 install
libssl1.0.0:i386 install
openssl install
ssl-cert install
Run Code Online (Sandbox Code Playgroud)
我该怎么办才能解决这个问题?谢谢,
Run Code Online (Sandbox Code Playgroud)Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf Error Loading extension section usr_cert
我没有/etc/openvpn/easy-rsa/openssl-1.0.0.cnf,所以带上一粒盐......
opensslconf.h从OpenSSL的发行版确实包括该部分:
openssl-1.0.1h$ grep -R usr_cert *
apps/openssl-vms.cnf:x509_extensions = usr_cert # The extensions to add to the cert
apps/openssl-vms.cnf:[ usr_cert ]
apps/openssl.cnf:x509_extensions = usr_cert # The extensions to add to the cert
apps/openssl.cnf:[ usr_cert ]
Run Code Online (Sandbox Code Playgroud)
你能恢复一个旧版本/etc/openvpn/easy-rsa/openssl-1.0.0.cnf吗?
这是来自的部分apps/openssl.cnf.如果缺少RSA的配置文件,您可以考虑将其添加到Easy RSA的配置文件中.首先,尝试一个空的部分.然后尝试添加原始代码.
[ usr_cert ]
# These extensions are added when 'ca' signs a request.
# This goes against PKIX guidelines but some CAs do it and some software
# requires this to avoid interpreting an end user certificate as a CA.
basicConstraints=CA:FALSE
# Here are some examples of the usage of nsCertType. If it is omitted
# the certificate can be used for anything *except* object signing.
# This is OK for an SSL server.
# nsCertType = server
# For an object signing certificate this would be used.
# nsCertType = objsign
# For normal client use this is typical
# nsCertType = client, email
# and for everything including object signing:
# nsCertType = client, email, objsign
# This is typical in keyUsage for a client certificate.
# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
# This will be displayed in Netscape's comment listbox.
nsComment = "OpenSSL Generated Certificate"
# PKIX recommendations harmless if included in all certificates.
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer
# This stuff is for subjectAltName and issuerAltname.
# Import the email address.
# subjectAltName=email:copy
# An alternative to produce certificates that aren't
# deprecated according to PKIX.
# subjectAltName=email:move
# Copy subject details
# issuerAltName=issuer:copy
#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
#nsBaseUrl
#nsRevocationUrl
#nsRenewalUrl
#nsCaPolicyUrl
#nsSslServerName
# This is required for TSA certificates.
# extendedKeyUsage = critical,timeStamping
Run Code Online (Sandbox Code Playgroud)
小智 7
通过比较早期没有此问题的Ubuntu 14.04安装,似乎具体问题是"subjectAltName".我没有读到它的作用,但下面的命令将修复你的"openssl-1.0.0.cnf"文件:
perl -p -i -e 's|^(subjectAltName=)|#$1|;' /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
Run Code Online (Sandbox Code Playgroud)
我应该提交错误报告.
我终于让他的工作(在我的机器上)首先我的设置有点不同,我在 Windows10 上运行 OpenSSL 1.0.2h。我正在尝试为测试生成多个证书、CA 和其他内容,但出现错误:
configuration file routines:NCONF_get_string:no value:.\crypto\conf\conf_lib.c:324:group=CA_default name=email_in_dn
为了修复它,我发现将条目email_in_dn = no放在 CA_Default openssl.cfg 部分中,如下所示
####################################################################
[ CA_default ]
dir = ./demoCA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/ca.crt # The CA certificate
serial = $dir/serial # The current serial number
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/caprivkey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = usr_cert # The extentions to add to the cert
email_in_dn = no # <-- fixes CONF_get_string:no value
Run Code Online (Sandbox Code Playgroud)
我希望这对其他人有帮助。
| 归档时间: |
|
| 查看次数: |
32060 次 |
| 最近记录: |