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 : configuration file routines : 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에서 환경 변수를 관리하는 방법을 참조하십시오 .
이제 구성 위치 매개 변수를 전달하지 않고도 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
답변
set OPENSSL_CONF=c:/{path to openSSL}/bin/openssl.cfg
올바른 확장자 ( cnf가 아닌 openssl.cfg )를 관리하십시오!
여기에서 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>
답변
관리자 권한으로 openssl.exe를 실행 해보십시오.
답변
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 여야합니다 .