OpenSSL을 사용하여 타사 응용 프로그램을 만들어 임베디드 시스템 용 새 인증서 해지 목록을 만듭니다. 내가 이것을 실행하면 는 여기가 CRL 파일을 만들고 내 코드OpenSSL에서 새 CRL을 만드는 문제
crl = X509_CRL_new();
X509_CRL_set_version(crl, CRL_VERSION);
X509_NAME *id = X509_NAME_new();
X509_NAME_add_entry_by_txt(id, "C", MBSTRING_ASC, (const unsigned char*) CRL_ISSUER_COUNTRY, -1, -1, 0);
X509_NAME_add_entry_by_txt(id, "ST", MBSTRING_ASC, (const unsigned char*) CRL_ISSUER_STATE, -1, -1, 0);
X509_NAME_add_entry_by_txt(id, "L", MBSTRING_ASC, (const unsigned char*) CRL_ISSUER_COUNTRY, -1, -1, 0);
X509_NAME_add_entry_by_txt(id, "O", MBSTRING_ASC, (const unsigned char*) CRL_ISSUER_ORGANIZATION, -1, -1, 0);
X509_NAME_add_entry_by_txt(id, "OU", MBSTRING_ASC, (const unsigned char*) CRL_ISSUER_ORGANIZATIONAL_UNIT, -1, -1, 0);
X509_NAME_add_entry_by_txt(id, "CN", MBSTRING_ASC, (const unsigned char*) CRL_ISSUER_COMMON_NAME, -1, -1, 0);
X509_CRL_set_issuer_name(crl, id);
X509_CRL_set_lastUpdate(crl, tmptm);
char filename[50];
strcpy(filename, RW_CRL_LOCATION);
strcat(filename, "crl.pem");
fPointer = fopen(filename, "w+");
result = PEM_write_X509_CRL(fPointer, clr);
이다 나는 그것이하려면 openssl 명령이
OpenSSL 1.0.2d 9 Jul 2015
[email protected]:/vp/test/crl#
[email protected]:/vp/test/crl# openssl crl -in crl.pem -noout -text
unable to load CRL
1995560144:error:0D0C40D8:asn1 encoding routines:c2i_ASN1_OBJECT:invalid object encoding:a_object.c:283:
1995560144:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:694:Field=algorithm, Type=X509_ALGOR
1995560144:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:694:Field=sig_alg, Type=X509_CRL_INFO
1995560144:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:694:Field=crl, Type=X509_CRL
1995560144:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:pem_oth.c:83:
를로드 할 수 없습니다 사용하여 읽으려고하지만 나는 컴파일 할 때와 동일하게 실행 내 32 비트 리눅스 PC의 코드 조각은이
OpenSSL 1.0.1f 6 Jan 2014
[email protected]:~/openssl-testing/code/crl$ openssl crl -in crl.pem -noout -text
Certificate Revocation List (CRL):
Version 3 (0x2)
Signature Algorithm: itu-t
Issuer: /C=SL/L=SL/O=VIVOPAY/OU=PISCES
Last Update: Nov 11 05:44:25 2016 GMT
Next Update: NONE
No Revoked Certificates.
Signature Algorithm: itu-t
가 그런 다음 CRL 파일이 포함 된 파일 시스템에 내 PC를 사용하여 만든 복사를 열려고 작동 만든 CRL 파일을 열려고 거기, 괜찮 았어. 그리고 임베디드 시스템에서 생성 된 crl을 PC에 복사하고 열려고 시도했지만 실패했습니다. 누구든지이 문제와 관련하여 도움을받을 수 있습니까?
아마도 32 비트 아키텍처 용으로 코드를 컴파일했을 것입니다. 따라서 PC (64 비트라고 생각합니다)에서는 작동하지 않습니다. – LPs
아아아, 내가 추가 할 것이다. 아니요. 두 아키텍처 모두에서 컴파일되고 테스트되었습니다. – thilinaur
@ThilinaRathnasooriya - *** _이 실제로 *** PEM이면 'file crl.pem'은'ASCII '를 반환합니다. 'binary'를 반환하면 DER을 반환합니다. '-inform' 옵션을'openssl crl -in crl.pem -noout -text'에 추가하십시오. PEM 또는 DER :'-inform DER' 또는'-inform PEM'을 사용하십시오. ['openssl crl' man page] (https://www.openssl.org/docs/man1.1.0/apps/crl.html)도 참조하십시오. – jww