programing

Windows에서 /usr/local/ssl/openssl.cnf에서 구성 정보를 로드할 수 없습니다.

powerit 2023. 4. 8. 09:50
반응형

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

반응형