/etc/ssl/openssl.cnf 파일에 디렉토리를 설정했지만 명령을 실행할 때마다
openssl req -x509 -newkey rsa:4096 -keyout cakey.pem -out cacert.pem -days 3650
내가 작업 중인 디렉토리의 루트에 파일을 배치합니다.
[ CA_default ]
dir = /home/will/myCA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
#unique_subject = no # Set to 'no' to allow creation of
# several certs with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
serial = $dir/serial # The current serial number
crlnumber = $dir/crlnumber # the current crl number
# must be commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = usr_cert # The extensions to add to the cert
# Comment out the following two lines for the "traditional"
# (and highly broken) format.
name_opt = ca_default # Subject Name options
cert_opt = ca_default # Certificate field options
# Extension copying option: use with caution.
# copy_extensions = copy
# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
# so this is commented out by default to leave a V1 CRL.
# crlnumber must also be commented out to leave a V1 CRL.
# crl_extensions = crl_ext
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = default # use public key default MD
preserve = no # keep passed DN ordering
# A few difference way of specifying how similar the request should look
# For type CA, the listed attributes must be the same, and the optional
# and supplied fields are just that :-)
policy = policy_match
디렉토리가 제대로 작동한다면 나는 이것을 예상해야합니다
Generating a 2048 bit RSA private key
.................................+++
.................................................................................................+++
writing new private key to '/home/will/myCA/private/cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
"/home/will/myCA/private/cakey.pem"에 새 개인 키를 씁니다.
이제 /etc/local/ssl 아래에 설치된 바이너리를 사용하여 웹 사이트에서 직접 OpenSSL 버전을 업그레이드했습니다. 불행하게도 OpenSSL을 사용하여 생성한 파일이 폴더/디렉토리로 정렬되지 않는 이유를 아직도 이해하지 못합니다.
기본 디렉토리가 작동하지 않는 이유를 아는 사람이 있습니까?
매우 감사합니다
~ 할 것이다
업데이트 날짜: 2019년 5월 30일 11:00
나는 명령을 실행했다
openssl req -x509 -newkey rsa:4096 -days 3650
그러나 터미널 창 내에서 키를 인쇄할 뿐 파일로 출력하지는 않습니다.
명령에 -noout을 추가했지만 파일이 저장되었으며, openssl.cnf 파일 /home/will/demoCA에 설정한 디렉터리 대신 ~privkey.pem에 저장되었습니다.
터미널이 열린 작업 디렉터리에 파일이 저장되어 있는 것을 확인했습니다.
이 명령을 사용하여 openssl version -d
디렉터리를 설정한 구성 파일의 기본 위치를 표시합니다.OPENSSLDIR: "/usr/local/ssl"
답변1
가리키는 파일은 [ CA_defaults ]
명령에 의해 내부적으로 사용됩니다 openssl ca
.
내부를 살펴보면 new_certs_dir
이 명령을 사용할 때 CA에서 서명한 모든 인증서가 표시되며 openssl ca
파일 이름에는 인증서 일련 번호가 추가되어 구성됩니다 .pem
.
이러한 파일은 사용할 때 openssl req
사용되지 않습니다 .
명령에 대한 매뉴얼 페이지에는 req
다음과 같이 나와 있습니다.
- 출력 파일 이름
기본적으로 이는 기록할 출력 파일 이름 또는 표준 출력을 지정합니다.
따라서 명령이 실행되는 디렉터리에 있는 지정된 파일 이름에 쓰거나 표준 출력에 쓰게 됩니다.
-키아웃 파일 이름
이는 새로 생성된 개인 키가 기록될 파일 이름을 제공합니다. 이 옵션을 지정하지 않으면 구성 파일에 있는 파일 이름이 사용됩니다.
default_keyfile
그러면 명령을 실행한 디렉터리에 있는 지정된 파일 이름에 쓰거나 옵션에 지정된 파일 이름 에 쓰게 됩니다 ( [ req ]
물론 아래).
두 경우 모두 현재 디렉터리에 파일을 배치하지 않으려면 명령에 파일의 절대 경로를 제공할 수 있습니다.
파일에서 구성한 구조는 .conf
명령을 사용하여 하위(CA 또는 최종 엔터티)의 요청에 서명할 때 작동합니다. openssl ca
그러나 인증서에 서명할 수 있는 단계로 이동하려면 CA 인증서와 키가 필요합니다. 귀하의 openssl req
명령으로 이러한 항목이 생성됩니다. CA 인증서에서 합리적인 값을 얻으려면 .conf
파일에 더 많은 콘텐츠를 추가해야 합니다.
다음과 같은 내용을 시작하면 됩니다.
[ req ]
# Don't prompt for the DN, use configured values instead
# This saves having to type in your DN each time.
prompt = no
string_mask = default
distinguished_name = req_dn
# The size of the keys in bits:
default_bits = 4096
[ req_dn ]
countryName = GB
stateOrProvinceName = Somewhere
organizationName = Example
organizationalUnitName = PKI
commonName = Example Test Root CA
[ ca_ext ]
# Extensions added to the request
basicConstraints = critical, CA:TRUE
keyUsage = critical, keyCertSign, cRLSign
이전 명령을 약간 수정한 버전을 사용하여 CA 인증서를 만듭니다.
openssl req -x509 -newkey rsa:4096 -keyout /home/will/myCA/private/cakey.pem -out /home/will/myCA/cacert.pem -days 3650 -nodes -config <path-to>/openssl.cnf -extensions ca_ext
-config
참고: 이 옵션은 기본 구성 파일을 사용/편집하지 않는 경우에만 필요합니다.
모든 것이 정상이면 위 CA 구성에 대한 올바른 인증서와 키를 갖게 됩니다. 이 명령을 사용하여 인증서에 서명하기 전에 인증서 가 존재하고 초기 일련 번호(예: )로 생성되었는지 openssl ca
확인해야 합니다 .index.txt
serial
01
OpenSSL은 암호화의 스위스 군용 칼이므로 다양한 옵션이 있습니다. 불행히도 매뉴얼 페이지를 읽는 것이 이를 이해하는 유일한 방법입니다.