web-dev-qa-db-ja.com

拡張セクションusr_certの読み込みエラー

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

この問題は、which opensslcnfスクリプトが使用するopenssl.cnfの一致するバージョンを見つけられないという報告されたバグとは異なります(上記のメッセージはopenssl-1.0.0.cnfを示しています)。 Google検索を実行しましたが、回答が見つかりませんでした。

ここにいくつかの環境情報があります:

## 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

これを解決するには何を見ればいいですか?おかげで、

12
eN_Joy
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を持っていないので、これを一粒の塩と一緒に持っていきます...

OpenSSLのディストリビューションからのopensslconf.hdoesそのセクションを含める:

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 ]

/etc/openvpn/easy-rsa/openssl-1.0.0.cnfの古いバージョンを復元できますか?

apps/openssl.cnfのセクションです。 Easy 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
7
jww

この問題がなかった以前の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

おそらくバグレポートを提出する必要があります。

7
expebition

私はようやく(私のマシンで)彼の作業を始めました。まず、私のセットアップは少し異なります。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

それを修正するために、次のようにCA_Default openssl.cfgセクションにエントリemail_in_dn = noを配置することがわかりました

####################################################################
[ 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

これが他の誰かの役に立つことを願っています。

3
Dai Bok

これはUbuntuのバグとして報告されています。 subjectAltNameなしでSSL証明書の作成がクラッシュする を参照してください。

Yuriyが説明した回避策は機能するようです(ランチパッドからコピー)。

/ usr/share/easy-rsa/pkitoolファイル内

式を置き換えるだけです:

KEY_ALTNAMES = "$ KEY_CN"

に:

KEY_ALTNAMES = "DNS:$ {KEY_CN}"

私のバージョンのファイルでは、これは284行目で、文字列 "Using Common Name"の直後です。

1
David

このエラーを取り除くには:

3074119356:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_lib.c:335:group=CA_default name=email_in_dn

使用する

-noemailDN 

opensslコマンドで。

例えば:

$  openssl ca -batch -config openssl.cnf -extensions usr_cert -noemailDN -days 375 -notext -md sha256 -in csr/www.example8.com.csr.pem -out certs/www.example8.com.cert.pem -verbose -passin pass:changeit
0
user674669