Windows에서 /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/sl.cnf에서 구성 정보를 로드할 수 없습니다.
OpenSSL 설치 후 새로운 환경변수를 작성해야 합니다.
- : 름: :
OPENSSL_CONF
- ::
C:\Program Files\OpenSSL\openssl.cnf
powershell의 경우:
$env:OPENSSL_CONF = "${env:ProgramFiles}\OpenSSL\openssl.cnf"
이 값은 이전 설치 버전과 다릅니다(이 게시물의 이전 편집에서 확인).또한 폴더 "openssl" 을 .${env:ProgramFiles}\OpenSSL
당신의 경로로.
다음과 같이 Configuration에 대한 절대 경로를 지정해야 합니다.
openssl req -x509 -config "C:\OpenSSL-Win64\bin\openssl.cnf" ...
Windows 10 에서는, 재기동하거나 Administrator 모드로 실행할 필요가 없고, 대신에 openssl config 를 다음과 같이 설정합니다.
set OPENSSL_CONF=C:\Program Files (x86)\GnuWin32\share\openssl.cnf
물론입니다.GnuWin32
이 상황에서 유일하게 효과가 있었던 것은 스스로 작성한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이 설치되면 시스템 재부팅 후 Run 명령 프롬프트가 관리자로 표시됩니다.[둘 다 최선을 다해서...]admin 및 시스템 reboot으로 실행]
실행했다. 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
그러나 서버의 암호 구문을 입력하라는 메시지가 표시되었습니다.열쇠는 나한테 효과가 있었어
나는 언급했다.이 링크는 제 도움을 준다.
감사해요.
Windows 8 의 경우는, openssl.cnf 파일을 찾아서 C 드라이브에 카피하기만 하면 됩니다.그 후, 다음과 같이 합니다.
openssl req -new -key server.key -out server.csr -config C:\openssl.cnf
완벽하게 작동했다.
후 하고 OpenSSL을 사용해야 .Run As Administrator
그럼 되겠네요.
GnuWin32 툴을 사용하면 C:\gnuwin32\share 아래에 openssl.cnf가 있습니다.
set OPENSSL_CONF=C:\gnuwin32\share\openssl.cnf
제 경우 명령어로 openssl.cnf 파일의 경로를 수동으로 설정해야 합니다.config
command 。그래서 이 명령어는
openssl req -x509 -config "C:\Users\sk\Downloads\openssl-0.9.8k_X64\openssl.cnf" -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -days 900
Windows 7 에서는, 재기동할 필요가 없었습니다.관리자 모드로 명령 프롬프트를 실행하기만 하면 됩니다.
Win32 OpenSSL v1.1.0g을 사용하는 경우 다음 환경변수를 설정합니다.
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\cnf\openssl.cnf
"server.key"를 사용하여 이 명령을 실행하기 전에 "server.csr"을 성공적으로 생성하십시오.
openssl req -new -key server.key -out server.csr
openssl을 찾을 수 없는 이유에 대한 기본적인 질문:간단한 답변:일부 openssl 설치 패키지에는 기본 openssl.cnf가 미리 포함되어 있습니다.다른 패키지는 그렇지 않습니다.후자의 경우 아래 링크의 링크를 포함합니다.필요에 따라 추가 사용자 고유의 --DN 이름 등을 입력할 수 있습니다.
https://www.openssl.org/docs/manmaster/man5/config.html,I에서 직접 인용:
"OPENSL 라이브러리 구성
응용 프로그램은 마스터 OpenSSL 구성 파일 또는 선택적으로 대체 구성 파일을 사용하여 OpenSSL의 특정 측면을 자동으로 구성할 수 있습니다.openssl 유틸리티에는 다음 기능이 포함되어 있습니다.서브 명령어로 대체 컨피규레이션파일을 사용하기 위한 옵션을 사용하지 않는 한 모든 서브 명령어는 마스터 OpenSSL 컨피규레이션파일을 사용합니다.
라이브러리 구성을 활성화하려면 기본 섹션에 메인 구성 섹션을 가리키는 적절한 행이 포함되어 있어야 합니다.기본 이름은 openssl_conf로 openssl 유틸리티에서 사용됩니다.다른 응용 프로그램에서는 myapplication_conf 등의 대체 이름을 사용할 수 있습니다.모든 라이브러리 컨피규레이션라인이 컨피규레이션파일 시작 부분의 디폴트섹션에 표시됩니다.
설정 섹션은 특정 모듈 설정 정보를 포함하는 이름 값 쌍의 세트로 구성되어야 합니다.이름은 컨피규레이션모듈의 이름을 나타냅니다.이 값의 의미는 모듈 고유합니다.예를 들어 설정 모듈 고유 정보가 포함된 추가 설정 섹션을 나타낼 수 있습니다.예::
따라서 Distinguished Name(DN; 인정자명)에 따라 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" 관련 문서입니다.
Windows Powershell의 경우:
$env:OPENSSL_CONF = "${env:ProgramFiles}\OpenSSL-Win64\bin\openssl.cfg"
호출하기 전에 변수 입력은 다음과 같은 트릭:
OPENSSL_CONF=/usr/ssl/openssl.cnf openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 365
Windows 7에서도 같은 문제가 발생했습니다.
WARNING: can't open config file: C:\OpenSSL-Win32\bin\openssl.cfg
Unable to load config info from C:\OpenSSL-Win32\bin\openssl.cfg
이유가 제거되었습니다.OpenSSL-Win32
모든 컴포넌트가 시스템에서 올바르게 제거되지 않은 경우.환경변수를 수동으로 제거해야 했다.
일부 openssl 바이너리(git과 함께 설치됨)는 필요하지 않습니다.OPENSSL_CONF
환경변수. 단, 이 환경변수가 존재할 경우 유효한 파일로 이어져야 합니다.
언급URL : https://stackoverflow.com/questions/14459078/unable-to-load-config-info-from-usr-local-ssl-openssl-cnf-on-windows
'programing' 카테고리의 다른 글
더 나은 Windows 콘솔 창은 없습니까? (0) | 2023.04.08 |
---|---|
PowerShell의 Invoke-RestMethod는 curl -u(기본인증)에 상당합니다. (0) | 2023.04.08 |
경로에서 파일 이름 추출 (0) | 2023.04.08 |
항상 nvarchar(MAX)를 사용할 경우 단점이 있습니까? (0) | 2023.04.08 |
MIME 유형으로 인해 스타일시트가 로드되지 않음 (0) | 2023.04.08 |