2012-08-15 3 views
4

openssl을 사용하여 테스트를 위해 crl 배포 지점이 포함 된 x509 인증서를 만드는 데 문제가 있습니다.CRL 배포 지점을 포함하여 openssl을 사용하여 인증서를 만드는 방법은 무엇입니까?

설명서를 확인한 결과 crlDistributionPoints 구성 설정이이 용도로 사용되었습니다. 안타깝게도 openssl은 crl 배포 지점이있는 버전 3 인증서 대신 x509 버전 1 인증서를 생성합니다. 내 명령이나 구성에 문제가있는 것으로 확신하지만 문서를주의 깊게 읽고 구성을 가지고 놀아도 도움이되지 않았습니다. 구성 파일의 다른 설정이 고려되므로 파일 자체가 openssl에서 사용됩니다.

[ ca ] 
default_ca    = CA_default 

[ CA_default ] 

dir      = /home/ca 
database    = $dir/index.txt 
new_certs_dir   = $dir/newcerts 

certificate    = $dir/cacert.pem 
serial     = $dir/serial 
private_key    = $dir/private/cakey.pem 
RANDFILE    = $dir/private/.rand 

default_days   = 3650 
default_crl_days  = 30 
default_md    = md5 

policy     = policy_any 
email_in_dn    = no 

name_opt    = ca_default 
cert_opt    = ca_default 
copy_extensions   = none 

x509_extensions   = extensions_section 

[ extensions_section ] 

crlDistributionPoints=URI:http://example.com/crl.pem 

[ policy_any ] 
countryName    = supplied 
stateOrProvinceName  = optional 
organizationName  = optional 
organizationalUnitName = optional 
commonName    = supplied 
emailAddress   = optional 

어떤 아이디어 :

나는 다음과 같은 구성 파일을 사용하고 명령

openssl x509 -req -in $NAME.csr -out certs/$NAME.pem -days 3650 -CAcreateserial -CA cacert.pem -CAkey private/cakey.pem -CAserial serial 

을 사용하고 있습니다?

답변

11

openssl x509 구성 파일에서 위에 지정한 확장 구성을 읽지 않습니다.

당신은의 (적어도) 다음 두 가지 방법으로 인증서에 crlDistributionPoints를 얻을 수 있습니다 :

  1. 보다는 x509 사용 openssl ca는 요청에 서명 할 수 있습니다. 구성이 기본 위치에 있지 않은 경우 필요에 따라 -config을 전달하십시오. 당신의 제공 명령의 대부분은 당신이 당신의 질문에 제공 한대로 옵션이 -CA

    openssl ca -in $NAME.csr -out certs/$NAME.pem -days 3650

  2. 사용하여 명령을 시작 생략하는 경우에 사용하지만, 먼저 v3의 확장을 포함하는 파일을 생성 할 수 있습니다 (즉, mycrl.cnf를);

    crlDistributionPoints=URI:http://example.com/crl.pem

openssl ca 아마 명령에 더 적합 당신이 원하는 무엇이며, 대부분의 이후 : mycrl.cnf는 다음과 같은 포함하는 경우 openssl x509

openssl x509 -req -in $NAME.csr -out certs/$NAME.pem -days 3650 \ 
    -CAcreateserial -CA cacert.pem -CAkey private/cakey.pem \ 
    -CAserial serial -extfile mycrl.cnf` 

에 해당 통화에 옵션 -extfile mycrl.cnf 추가 v3 확장을 위해 openssl.cnf에서 다양한 설정을 사용하여이 명령에 의존하는 예제를 찾을 수 있습니다.

제외 : 인증서에 MD5 메시지 다이제스트를 사용하는 경우는 inadvisable입니다.

이전에는 SHA1이 MD5에 대한 대안으로 제안되었지만 이제는 더 이상 사용되지 않게됩니다. 요청 및 서명 작업에 사용되는 메시지 요약을 지정할 수 있으며 openssl list-message-digest-commands으로 지원되는 메시지 요약을 나열 할 수 있습니다. openssl ca-md sha256 옵션을 사용하여 요청에 서명 (또는 [CA_default] 설정 섹션에서 default_md=sha256 설정) 할 때 예를 들어

, 당신은 SHA256을 사용할 수 있습니다.

+1

네, 그랬습니다! 유일한 테스트 시스템 보안은 여기에 큰 포인트가 아니기 때문에. 그러나 어쨌든 MD5에 대한 정보에 감사드립니다. –

관련 문제