web-dev-qa-db-ja.com

OpenSSLとopenssl.confファイルの読み取りエラー

私はWindows XP 32ビットを実行しています

次のURLからOpensslをダウンロードしてインストールしました。 http://www.slproweb.com/products/Win32OpenSSL.html

そして、私は次のコマンドを使用して自己署名証明書を作成しようとしました

openssl req -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

その後、次のエラーが発生し始めました

/usr/local/ssl/openssl.cnfから構成情報をロードできません

その後、グーグルでいつか上記のコマンドを変更しました

openssl req -config C:\OpenSSL\bin\openssl.conf -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

しかし、今私はコマンドプロンプトで次のエラーを取得します

c:\ OpenSSL\bin\openssl.confの-1行目のエラー
4220:error:02001002:system library:fopen:No such file or directory:。\ crypto\bio\bss_file.c:126:fopen( 'C:\ OpenSSL\bin\openssl.conf'、 ' rb ')4220:error:2006D080:BIO routines:BIO_new_file:no such file:。\ crypto\bio\bss_file.c:129:
4220:error:0E078072:構成ファイルルーチン:DEF_LOAD:そのようなファイルはありません:。\ crypto\conf\conf_def.c:197:

助けてください。前もって感謝します。

105
Sreeram

Windowsでは、環境プロパティOPENSSL_CONFも設定できます。たとえば、コマンドラインから次のように入力できます。

set OPENSSL_CONF=c:/libs/openssl-0.9.8k/openssl.cnf

検証するには、次のように入力できます。

echo %OPENSSL_CONF%

また、コンピューターの環境変数の一部として設定して、すべてのユーザーとサービスがデフォルトで使用できるようにすることもできます。たとえば、 Windows NTの環境変数 および Windows XPの環境変数の管理方法 を参照してください。

Config locationパラメーターを渡す必要なく、opensslコマンドを実行できるようになりました。

129
dvtoever

コマンドラインにパラメータ-config c:\your_openssl_path\openssl.cfgを追加し、your_openssl_pathを実際にインストールされたパスに変更します。

38
Nikl

手順4でこのように自分でopenssl.cnfファイルを作成するだけです。 http://www.flatmtn.com/article/setting-openssl-create-certificates

リンクが機能しなくなった後に編集するopenssl.cnfファイルの内容は次のとおりです。

#
# OpenSSL configuration file.
#

# Establish working directory.

dir                 = .

[ ca ]
default_ca              = CA_default

[ CA_default ]
serial                  = $dir/serial
database                = $dir/certindex.txt
new_certs_dir               = $dir/certs
certificate             = $dir/cacert.pem
private_key             = $dir/private/cakey.pem
default_days                = 365
default_md              = md5
preserve                = no
email_in_dn             = no
nameopt                 = default_ca
certopt                 = default_ca
policy                  = policy_match

[ policy_match ]
countryName             = match
stateOrProvinceName         = match
organizationName            = match
organizationalUnitName          = optional
commonName              = supplied
emailAddress                = optional

[ req ]
default_bits                = 1024          # Size of keys
default_keyfile             = key.pem       # name of generated keys
default_md              = md5               # message digest algorithm
string_mask             = nombstr       # permitted characters
distinguished_name          = req_distinguished_name
req_extensions              = v3_req

[ req_distinguished_name ]
# Variable name             Prompt string
#-------------------------    ----------------------------------
0.organizationName          = Organization Name (company)
organizationalUnitName          = Organizational Unit Name (department, division)
emailAddress                = Email Address
emailAddress_max            = 40
localityName                = Locality Name (city, district)
stateOrProvinceName         = State or Province Name (full name)
countryName             = Country Name (2 letter code)
countryName_min             = 2
countryName_max             = 2
commonName              = Common Name (hostname, IP, or your name)
commonName_max              = 64

# Default values for the above, for consistency and less typing.
# Variable name             Value
#------------------------     ------------------------------
0.organizationName_default      = My Company
localityName_default            = My Town
stateOrProvinceName_default     = State or Providence
countryName_default         = US

[ v3_ca ]
basicConstraints            = CA:TRUE
subjectKeyIdentifier            = hash
authorityKeyIdentifier          = keyid:always,issuer:always

[ v3_req ]
basicConstraints            = CA:FALSE
subjectKeyIdentifier            = hash

Waybackmachineを使用して引き続きページを見つけることができます。 https://web.archive.org/web/20171108102046/http://www.flatmtn.com/article/setting-openssl-create-certificates

22
Sam

管理者としてopenssl.exeを実行してみてください。

12
set OPENSSL_CONF=c:/{path to openSSL}/bin/openssl.cfg

正しい拡張子(openssl.cfgcnfではない)に注意してください!

ここからOpenSSLをインストールしました: http://slproweb.com/products/Win32OpenSSL.html

11
user669677

OpenSSLでApacheをインストールした場合は、binディレクトリに移動します。私の場合、D:\ Apache\bin。

* これらのコマンドは、opensslのスタンドアロンインストールがある場合にも機能します。

次のコマンドを実行します。

openssl req -config d:\Apache\conf\openssl.cnf -new -out d:\Apache\conf\server.csr -keyout d:\Apache\conf\server.pem
openssl rsa -in d:\Apache\conf\server.pem -out d:\Apache\conf\server.key
openssl x509 -in d:\Apache\conf\server.csr -out d:\Apache\conf\server.crt -req -signkey d:\Apache\conf\server.key -days 365

* これにより、開発目的で使用できる自己署名証明書が作成されます

繰り返しますが、httpd.confにApacheがインストールされている場合は、これらを貼り付けます:

  <IfModule ssl_module>
    SSLEngine on
    SSLCertificateFile "D:/Apache/conf/server.crt"
    SSLCertificateKeyFile "D:/Apache/conf/server.key"
  </IfModule>
11
Artur Kędzior

Apache for Windowsのbinフォルダーからopenssl.exeを使用して同様のエラーが発生しました。 openssl.cnfファイルのパスにタイプミスがある-configフラグが指定されていました。あなたはそれを見つけると思います

openssl req -config C:\OpenSSL\bin\openssl.conf -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

あるべき

openssl req -config "C:\OpenSSL\bin\openssl.cnf" -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

注:confは、おそらくcnfでなければなりません。

7
Nic Cottrell

Opensslのインストールが成功した場合、Cドライブで「OPENSSL」を検索して設定ファイルを見つけ、パスを設定します。

set OPENSSL_CONF=<location where cnf is available>/openssl.cnf

うまくいきました。

4
hermes101

この回避策は、私の仕事(テクニカルサポート)で非常に役立ちました。どこからでも実行できる単純なバッチファイルを作成しました(インストールする権限がありませんでした)。この回避策では、変数を設定してからOpenSSLを実行します。また、binフォルダーが開きます(作成または変更したファイルはここに保存されるため)。また、これはWindows専用です。

設定方法:

  1. OpenSSLバイナリをダウンロードします here 。 (これはバージョン0.9.8hで動作することが確認されていることに注意してください。)
  2. このコードをStartOpenSSL.batという名前のファイルにコピーします。これを任意の場所に保存します。どこからでも実行できます。

    @echo off
    title OpenSSL
    
    cd\openssl\bin
    
    if exist "C:\openssl\share\openssl.cnf" (
    
    set OPENSSL_CONF=c:/openssl/share/openssl.cnf
    start Explorer.exe c:\openssl\bin
    
    echo Welcome to OpenSSL
    
    openssl
    
    ) else (
    
    echo Error: openssl.cnf was not found
    echo File openssl.cnf needs to be present in c:\openssl\share
    pause
    
    )
    
    exit
    
  3. OpenSSLバイナリをダウンロードしたら、OpenSSLというタイトルのフォルダーのCドライブに展開します。 (パスはC:\ OpenSSLである必要があります)。フォルダーの内容を移動せずに、フォルダーに抽出するだけです。
  4. OpenSSLを使用する準備が整いました。これは、権限を必要としないため、インストールする権限を持っていないWindowsユーザーにとっては優れた回避策です。ダブルクリックして、以前のbatファイルを実行するだけです。
3
Rex Linder

ここでの問題は、GnuWin32 opensslで提供されるopenssl.cnfファイルがISNにないことです。作成する必要があります。ここに行くと、openssl.cnfファイルを作成する方法がわかります。

http://www.flatmtn.com/article/setting-ssl-certificates-Apache

どのようにそれを行うかについてあなたのためにそれをすべてレイアウトする場所。

注意:最後にバックスラッシュが付いたopensslコマンドはUNIX用です。 Windowsの場合:1)バックスラッシュを削除し、2)2行目を1行目の最後に移動します。 (つまり、コマンドは1つだけです。)

また、コメントを読むことは非常に重要です。それらに基づいていくつかの変更を行うことができます。

2
Mark Manning

次のようなエラーが表示される場合

1行目のエラーc:apacheconfopenssl.cnf

-configでバックスラッシュからフロントスラッシュに変更してみてください。

1
Jauyzed

https://github.com/xgqfrms-gildata/App001/issues/

  1. まず、正しいパスにopenssl.cnfファイルがあることを確認してください。
  2. 見つからない場合は、単に download oneにして設定パスにコピーしてください。
$ echo %OPENSSL_CONF%

$ set OPENSSL_CONF=C:\OpenSSL\bin\openssl.cnf
0
xgqfrms

管理者としてコマンドを実行し、設定ファイルを読み取り権限がある場所にコピーし、-configパラメーターでパスを指定します。

0
Dexion

私はこれが古いことを知っています-しかし、これで起こる(そしてVisual Studioを使用する)他の人が利益を得ると思った私は見つけることができないと思われる別の投稿でこれを読みました。

Notepad ++で設定を開き、エンコードがUTF-8(つまり、UTF-8-BOM *ではない)であることを確認します。

これにより、多くの検索/試行錯誤を回避できます...

0
jimnkey

Windowsでも同じ問題が発生しました。環境変数を次のように設定することで解決しました。

変数名:OPENSSL_CONF変数値:C:(OpenSSl Directory)\ bin\openssl.cnf

0
Braullio Soares