OpenSSL 64をインストールしました。nodejs httpsサーバーに証明書を使用したいです。次のコマンドを実行しました。
openssl genrsa -out subdomain.domain.com.key 1024
しかし、私はエラーがありました:
WARNING: can't open config file: /usr/local/ssl/openssl.cnf
Loading 'screen' into random state - done
Generating RSA private key, 1024 bit long modulus
.........++++++
.........................................++++++
unable to write 'random state'
e is 65537 (0x10001)
どうすれば解決できますか?
これは正しい命令ですか?
ソリューションはこのコマンドを実行しています:
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
または
set OPENSSL_CONF=[path-to-OpenSSL-install-dir]\bin\openssl.cfg
openssl
コマンドを使用する前に、コマンドプロンプトでプロンプトを表示します。
openssl
に、その.cfg
ファイルの場所を確実に知らせてください。
あるいは、Windows環境変数に同じ変数OPENSSL_CONF
を設定することもできます。
注: Shining Light ProductionsのOpenSSLバイナリ配布 (無料でダウンロードして使用できる公式のOpenSSLのコンパイル済み+インストーラバージョン)を使用すると、これが発生する可能性があります。このディストリビューションは、「事前にコンパイルされたOpenSSLパッケージがないオペレーティングシステム向けのサービス」として、OpenSSLのサイトから「準公式に」リンクされています。
私はApache2.4.4上でSSLを使っていて、最初にこのコードを実行しています。set OPENSSL_CONF=C:\wamp\bin\Apache\Apache2.4.4\conf\openssl.cnf
それから残りのコードを実行します。
/usr/local/ssl/openssl.cnf
このようなパスは、プログラムがCygwinまたはMSYSでコンパイルされていることを意味します。このopenssl
を使用しなければならない場合は、CygwinまたはMSYSによって提供されているBashのように、これらのパスを理解するインタプリタが必要になります。
もう1つの選択肢は、Windowsネイティブバージョンのopenssl
をダウンロードまたはコンパイルすることです。これを使用すると、プログラムは代わりに次のようなパスを必要とします。
C:\Users\Steven\ssl\openssl.cnf
これは、コマンドプロンプトに適しています。
私の場合は、Shining Lightのバイナリを使用しましたが、環境変数はすでに更新されています。しかし、私が昇格した特権でコマンドウィンドウを実行するまでは、まだ問題がありました。
CMDウィンドウを開いたら、必ずAdministratorとして実行してください。 (スタートメニューのコマンドプロンプトを右クリックし、「管理者として実行」を選択します)
ユーザーアカウント制御のため、ファイルを読み込めないと思います。
-config
パラメータの位置を正しく設定するだけです。
openssl .................... -config C:\bin\Apache\apache2.4.9\conf\openssl.cnf
.cfgと.cnfの違いが何であるかわからない私のサーバーでは、.cfgまたは.cnfを見つけることができませんでした 同じ 新しいファイルを作成し、次のフォルダーに置きました/usr/local/ssl/bin
実行した
.\openssl genrsa -des3 -out <key name>.key 2048
行きました..
Win64 OpenSSL v1.0.2aまたはWin32 OpenSSL v1.0.2aをインストールするだけで、 http://slproweb.com/products/Win32OpenSSL.html からダウンロードできます。そのまま使用でき、設定は不要です。