私は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:
助けてください。前もって感謝します。
Windowsでは、環境プロパティOPENSSL_CONF
も設定できます。たとえば、コマンドラインから次のように入力できます。
set OPENSSL_CONF=c:/libs/openssl-0.9.8k/openssl.cnf
検証するには、次のように入力できます。
echo %OPENSSL_CONF%
また、コンピューターの環境変数の一部として設定して、すべてのユーザーとサービスがデフォルトで使用できるようにすることもできます。たとえば、 Windows NTの環境変数 および Windows XPの環境変数の管理方法 を参照してください。
Config locationパラメーターを渡す必要なく、opensslコマンドを実行できるようになりました。
コマンドラインにパラメータ-config c:\your_openssl_path\openssl.cfg
を追加し、your_openssl_path
を実際にインストールされたパスに変更します。
手順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
管理者としてopenssl.exeを実行してみてください。
set OPENSSL_CONF=c:/{path to openSSL}/bin/openssl.cfg
正しい拡張子(openssl.cfgcnfではない)に注意してください!
ここからOpenSSLをインストールしました: http://slproweb.com/products/Win32OpenSSL.html
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>
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でなければなりません。
Opensslのインストールが成功した場合、Cドライブで「OPENSSL」を検索して設定ファイルを見つけ、パスを設定します。
set OPENSSL_CONF=<location where cnf is available>/openssl.cnf
うまくいきました。
この回避策は、私の仕事(テクニカルサポート)で非常に役立ちました。どこからでも実行できる単純なバッチファイルを作成しました(インストールする権限がありませんでした)。この回避策では、変数を設定してからOpenSSLを実行します。また、binフォルダーが開きます(作成または変更したファイルはここに保存されるため)。また、これはWindows専用です。
このコードを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
ここでの問題は、GnuWin32 opensslで提供されるopenssl.cnfファイルがISNにないことです。作成する必要があります。ここに行くと、openssl.cnfファイルを作成する方法がわかります。
http://www.flatmtn.com/article/setting-ssl-certificates-Apache
どのようにそれを行うかについてあなたのためにそれをすべてレイアウトする場所。
注意:最後にバックスラッシュが付いたopensslコマンドはUNIX用です。 Windowsの場合:1)バックスラッシュを削除し、2)2行目を1行目の最後に移動します。 (つまり、コマンドは1つだけです。)
また、コメントを読むことは非常に重要です。それらに基づいていくつかの変更を行うことができます。
次のようなエラーが表示される場合
1行目のエラーc:apacheconfopenssl.cnf
-configでバックスラッシュからフロントスラッシュに変更してみてください。
https://github.com/xgqfrms-gildata/App001/issues/
openssl.cnf
ファイルがあることを確認してください。$ echo %OPENSSL_CONF%
$ set OPENSSL_CONF=C:\OpenSSL\bin\openssl.cnf
管理者としてコマンドを実行し、設定ファイルを読み取り権限がある場所にコピーし、-configパラメーターでパスを指定します。
私はこれが古いことを知っています-しかし、これで起こる(そしてVisual Studioを使用する)他の人が利益を得ると思った私は見つけることができないと思われる別の投稿でこれを読みました。
Notepad ++で設定を開き、エンコードがUTF-8(つまり、UTF-8-BOM *ではない)であることを確認します。
これにより、多くの検索/試行錯誤を回避できます...
Windowsでも同じ問題が発生しました。環境変数を次のように設定することで解決しました。
変数名:OPENSSL_CONF変数値:C:(OpenSSl Directory)\ bin\openssl.cnf