Windows에서 OpenSSL을 사용하는 동안 :
openssl genrsa -out privatekey.pem 1024 -->
성공적으로 생성
openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 365
---->
다음과 같은 오류 메시지 표시
/usr/local/ssl/openssl.cnf에서 구성 정보를로드 할 수 없습니다
Windows에서 OpenSSL을 사용하는 동안 :
openssl genrsa -out privatekey.pem 1024 -->
성공적으로 생성
openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 365
---->
다음과 같은 오류 메시지 표시
/usr/local/ssl/openssl.cnf에서 구성 정보를로드 할 수 없습니다
답변:
OpenSSL을 설치 한 후 새로운 환경 변수를 만들어야했습니다.
OPENSSL_CONF
C:\Program Files\OpenSSL\openssl.cnf
Powershell에서 :
$env:OPENSSL_CONF = "${env:ProgramFiles}\OpenSSL\openssl.cnf"
이 값은 이전 설치 버전과 다릅니다 (이 게시물의 이전 편집에서 볼 수 있음). 또한 openssl 바이너리 폴더 ${env:ProgramFiles}\OpenSSL
를 Path 에 추가하는 것을 잊지 마십시오 .
C:\OpenSSL-Win32\bin\openssl.cfg
대신 사용해야 했습니다.
C:\Program Files (x86)\Git\ssl\openssl.cfg
이미 자식이있는 사람들을 위해.
SETX OPENSSL_CONF c:/libs/openssl-0.9.8k/openssl.cnf
다음과 같이 구성의 절대 경로를 지정해야합니다.
openssl req -x509 -config "C:\OpenSSL-Win64\bin\openssl.cnf" ...
openssl.cfg
설치 후 bin 디렉토리에 존재하는가. 그러나이 파일을 사용하면 어쨌든 작동하는 것 같습니다.
-config "C:\Program Files (x86)\Git\ssl\openssl.cnf"
-config
국기 를 어디에 사용할지 아래 답변을 참조하십시오 . 이것은 나를 위해 일했습니다
Windows에서 [ 유사한 시나리오 ]
같은 문제에 직면했지만 인증서 서명 요청을 요청하는 중이었습니다.
나는 아래를했다, 그것은 나를 위해 일했다.
OpenSSL이 설치되면 시스템을 재부팅 한 후 관리자 권한으로 명령 프롬프트를 실행합니다. [내가 최선을 다하려면 관리자와 시스템 재부팅으로 실행]
1. [오류 사례]
C:\OpenSSL-Win64\bin>openssl req -new -key server.key -out server.csr
경고 : 구성 파일을 열 수 없습니다 : C : \ OpenSSL-Win64 \ bin \ openssl.cnf 및 C : \ OpenSSL-Win64 \ bin \ openssl.cnf에서 구성 정보를로드 할 수 없습니다
2. [경고 작업]
C:\OpenSSL-Win64\bin> openssl req -new -key server.key -out server.csr -config C:\OpenSSL-Win64\bin\openssl.cfg
[경고 메시지] : 경고 : 구성 파일을 열 수 없습니다 : C : \ OpenSSL-Win64 \ bin \ openssl.cnf
하지만 저를 묻는 메시지가 전달 구 그것은은 server.key을 위해 일을 나를 위해.
나는이 링크 를 통해 도움을 받았다.
감사합니다.
만 이 상황에서 나를 위해 일한 것은이었다 자기가 만든 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
도움이 되길 바랍니다.
openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 365 -config openssl.cnf
openssl을 찾을 수없는 이유에 대한 기본 질문 : 간단한 답변 : openssl의 일부 설치 패키지에는 기본 openssl.cnf가 사전 포함되어 있습니다. 다른 패키지는 그렇지 않습니다. 후자의 경우 아래 표시된 링크 중 하나를 포함합니다. 필요에 따라 추가 사용자 별 정보 (DN 이름 등)를 입력 할 수 있습니다.
에서 https://www.openssl.org/docs/manmaster/man5/config.html,I 직접 인용 :
"OPENSSL 라이브러리 구성
응용 프로그램은 마스터 OpenSSL 구성 파일 또는 선택적으로 대체 구성 파일을 사용하여 OpenSSL의 특정 측면을 자동으로 구성 할 수 있습니다. openssl 유틸리티에는이 기능이 포함되어 있습니다. 대체 구성 파일을 사용하기 위해 하위 명령에 옵션을 사용하지 않는 한 모든 하위 명령은 마스터 OpenSSL 구성 파일을 사용합니다.
라이브러리 구성을 사용하려면 기본 섹션에 기본 구성 섹션을 가리키는 적절한 행이 있어야합니다. 기본 이름은 openssl 유틸리티에서 사용하는 openssl_conf입니다. 다른 응용 프로그램은 myapplication_conf와 같은 대체 이름을 사용할 수 있습니다. 모든 라이브러리 구성 행은 구성 파일 시작시 기본 섹션에 나타납니다.
구성 섹션은 특정 모듈 구성 정보를 포함하는 이름 값 쌍 세트로 구성되어야합니다. 이름은 구성 모듈의 이름을 나타냅니다. 이 값의 의미는 모듈마다 다릅니다. 예를 들어 구성 모듈 특정 정보가 포함 된 추가 구성 섹션을 나타낼 수 있습니다. 예 : "
따라서 DN (Distinguished Name)에 따라 openssl.cnf를 사용자 고유의 다른 항목과 함께 자체 구성해야합니다.
다음 은 특정 항목으로 openssl.cnf를 생성 할 수있는 템플릿 파일입니다.
한 응용 프로그램 에는 실제로 데모 .cnf 파일이 포함 된 데모 설치가 있습니다.
또한 프로그래밍 방식으로 .cnf 파일에 액세스해야하는 경우 적절한 헤더 (openssl / conf.h)를 포함하고 다음을 사용하여 .cnf 파일을 구문 분석 할 수 있습니다.
CONF_modules_load_file(const char *filename, const char *appname,
unsigned long flags);
"CONF_modules_load_file"에 대한 문서는 다음과 같습니다 .