비 대화식으로 SSL 인증서 작성 [닫기]


28

대화식이 아닌 자동으로 SSL 인증서를 만들고 싶습니다. 즉, 데이터를 요구하지 않습니다.

인증서를 만드는 일반적인 방법은 다음과 같습니다.

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 \
    -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem 

나는 다음을 시도했다.

openssl genrsa -out server.key 2048
touch openssl.cnf

cat >> openssl.cnf <<EOF
[ req ]
prompt = no
distinguished_name = req_distinguished_name

[ req_distinguished_name ]
C = GB
ST = Test State
L = Test Locality
O = Org Name
OU = Org Unit Name
CN = Common Name
emailAddress = test@email.com
EOF

openssl req -x509 -config openssl.cnf -nodes -days 7300 \
    -signkey server.key -out /etc/ssl/private/pure-ftpd.pem 

그러나 여전히 데이터에 대한 프롬프트가 표시됩니다.


1
원하는 결과 대신 무슨 일이 일어나고 있는지 설명하거나 출력 할 수 있습니까?
Patrick

나는 출력으로 도움을 얻습니다openssl req -x509 -config openssl.cnf -nodes -days 7300 -signkey server.key -out /etc/ssl/private/pure-ftpd.pem
TheNiceGuy

문제가 발생하면 오류 출력을 제공하는 것이 가장 좋습니다. 귀하의 문제가에 의한 것 같습니다 -signkey. 이것은 openssl req내 시스템 에서 유효한 옵션 이 아닙니다 . 오류 메시지는 첫 줄로 표시됩니다.unknown option -signkey
Patrick

글쎄, 그 서명 키는 SSL에게 내가 알고있는 키를 사용하도록 지시해야합니까?
TheNiceGuy

"인증서를 작성하는 일반적인 방법"은 데이터를 요구하지 않습니다. 아무것도 출력하지 않으시겠습니까? 그런 다음을 사용하십시오 2> /dev/null.
wingedsubmariner

답변:


51

누락 된 것은 인증서 제목을 -subj플래그 에 포함시키는 것 입니다. 워크 플로에 쉽게 통합 할 수 있고 나중에 정리할 필요가 없기 때문에 구성 파일을 만드는 것이 좋습니다.

한 단계 키 및 csr 생성 :

openssl req -new -newkey rsa:4096 -nodes \
    -keyout www.example.com.key -out www.example.com.csr \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"

한 단계 자체 서명 된 비밀번호없는 인증서 생성 :

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" \
    -keyout www.example.com.key  -out www.example.com.cert

이러한 명령 중 어느 것도 데이터를 요구하지 않습니다.

수퍼 유저와 거의 동일한 질문대한 나의 답변을보십시오 .


글쎄, 그것은 좋은 해결책입니다. 코드를 훨씬 작게 만듭니다. 감사합니다 : D
TheNiceGuy

1
더 복잡한 인증서의 표준이라고 생각했기 때문에 원래 구성 파일을 수정하지 않았습니다. -subj특히 v3 확장 및 subjectAltName 매개 변수에 들어갈 때 매개 변수 로 표시 할 수없는 일부 구성 .
robbat2

1
당신은 또한 사용할 수 있습니다 -batch(비 대화식 모드)
Eran H.

첫 번째 명령은 -subj기본 유효한 인라인 CSR 이므로 두 번째 명령이 키와 인증서를 자동으로 생성하는 위치에서 키를 실행하기 전에 키가 있어야하는 것으로 보입니다 .
dragon788

@ dragon788 지적 해 주셔서 감사합니다. 나는 그것을 고쳤다.
바하마

1

찾고있는 명령은 다음과 같습니다.

openssl req -new -x509 -config openssl.cnf -nodes -days 7300 -key server.key -out /etc/ssl/private/pure-ftpd.pem

버전의 변경 사항 :

  • -new 무엇이든 생성하는 데 필요합니다
  • -key 대신에 사용 -signkey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.