2016-12-09 5 views
1

나는 OpenSSL의 얇은 포장지 인 PyOpenSSL을 사용하여 '주제 디렉토리 속성'확장자를 파이썬 프로그램에서 인증서에 추가합니다. 확장자 이름 'subjectDirAttrs'와 'subjectDirectoryAttributes'이 시도되었지만 오류가 발생합니다OpenSSL은 '주제 디렉토리 속성'확장을 지원합니까?

PyOpenSSL으로
"OpenSSL.crypto.Error: [('X509 V3 routines', 'DO_EXT_NCONF', 'unknown extension name'), ('X509 V3 routines', 'X509V3_EXT_nconf', 'error in extension')]". 

OpenSSL을의 래퍼입니다, 사람이 분명히 '대상 디렉토리 속성'은 OpenSSL이 확장을 지원하는지 여부 것을 확인 할 수 있으며 OpenSSL이 지원한다면 프로그래밍에서 적절한 이름은 무엇입니까?

다른 질문은 '인증서 정책'확장을 PyOpenSSL에서 인증서에 추가 할 때 다음과 같은 오류가보고됩니다.

"OpenSSL.crypto.Error: [('X509 V3 routines', 'DO_EXT_NCONF', 'no config database'), ('X509 V3 routines', 'X509V3_EXT_nconf', 'error in extension')]" 

구성 데이터베이스 란 무엇입니까? /usr/local/ssl/openssl.cnf를 참조합니까? 그것을 사용하여 PyOpenSSL에 의해 인증서에 확장 인증서 정책을 추가하는 방법? 많은 감사!

답변

0

OpenSSL은 '주제 디렉토리 속성'확장을 지원합니까?

종류에 따라 다릅니다. OpenSSL은 인증서가있는 인증서로 작업 할 수 있습니다. 따라서 OpenSSL은 존재하지 않는 경우 "지원되지 않는"오류로 실패하지 않습니다. 문제는 사용자 프로그램을 위해 파싱 할 수있는 것이 아무것도 없다는 것입니다. 당신은 자신의 구문 분석 논리를 롤업해야합니다.

또한 OpenSSL 사용자 메일 링리스트의 How to parse Subject Directory Attributes Extension?을 참조하십시오. 스레드는 구문 분석을위한 몇 가지 제안을 제공합니다. 여기에 스레드에서의 :

  • "누군가가 ASN1 파싱 코드를 작성해야하는 모든 OpenSSL을 내 여기 저기 사례가있다, 다양한 d2i_XXX 및 i2d_XXX 기능을 참조/년대를 만들기 위해 사용할 수를 매크로가 정의되어 있습니다.. 그러나 실제로 문서화 된 것은 아닙니다. " 유형이 X509_NAME_ENTRY 아니라 X509_ATTRIBUTE 및 확장 가. 우리는 특정 형 IIRC로 직접 해당이없는 특성의 순서이지만 추가하는 것은 어렵지 않아처럼

  • 는 "보이는 하나는 그냥 GENERAL_NAME의 SEQUENCE 인 GENERAL_NAMES에 대한 작업을 따릅니다. 맞춤 확장을 추가하거나 확장 내용의 구조를 구문 분석 할 수 있습니다. "

관련 문제