OpenSSL CA를 사용하여 중복 인증서 생성

OpenSSL CA를 사용하여 중복 인증서 생성

직장에서 많은 내부 서버에는 openssl간단한 스크립트를 통해 직접 생성한 SSL 인증서가 있습니다. 생성은 제대로 작동했지만 후속 처리에는 개선이 필요했기 때문에 서버 SSL 인증서의 암호화되지 않은 복사본을 모두 잃어버렸습니다. 결과적으로 새 인증서를 만들고 배포하는 데 시간이 좀 걸리게 되지만 이로 인해 문제가 발생합니다.

새 SSL 인증서를 생성하려고 하면 internal.server.company프로세스가 끝날 때 openssl이 실패합니다.

failed to update database
TXT_DB error number 2

이 호스트에 대한 인증서가 이미 데이터베이스에 존재하기 때문입니다.

이전 인증서가 만료된 경우 데이터베이스에서 제거될 것이라고 생각 openssl ca -updatedb하지만 그렇지 않습니다.

편집기에서 (관련) 항목을 열고 발견된 줄을 index.txt검색 internal.server.company하고 삭제하여 이 문제를 해결할 수 있지만 이는 해킹처럼 보입니다. 이미 인증서가 있다고 생각되는 이름에 대한 새 인증서를 생성하려는 것을 openssl에서 수락하도록 하는 좋은 방법이 있습니까?

답변1

데이터베이스와 index.txt동일한 폴더에 파일(file )을 만들고 index.txt.attr다음 콘텐츠를 추가합니다.

unique_subject = no

데이터베이스 파일이 어디에 있는지 확실하지 않으면 openssl.cnf다음과 같이 사용 중인 파일을 확인하십시오.

[ CA_default ]

dir             = ./demoCA              # 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

위의 예에서 데이터베이스는 에 있고 index.txt에 상주합니다 . 따라서 새 파일을 에 ./demoCA넣어야 합니다 .index.txt.attr./demoCA

데이터베이스 파일 이름이 그대로인 경우 index새 파일의 이름을 지정해야 합니다 index.attr.

관련 정보