OpenSSL копирование расширений из запроса в сертификат
Здравствуйте.
Пытаюсь создать сертификат в соответствии с требованиями Приказа Федеральной службы безопасности Российской Федерации от 27.12.2011 г. № 795 "Об утверждении Требований к форме квалифицированного сертификата ключа проверки электронной подписи" средствами OpenSSL.
Для этого в файле openssl.cnf задаю секцию расширений
req_extensions = v3_req
в секции v3_req добавляю "Политики сертификата" и "Средство электронной подписи владельца"
certificatePolicies = 1.2.643.100.113.1, 1.2.643.100.113.2
1.2.643.100.111 = ASN1:UTF8String:OpenSSL 1.0.2g
формирую запрос на сертификат
openssl req -new -key private.pem -out request.pem
Если просмотреть сформированный запрос при помощи команды
openssl asn1parse -in request.pem
то видно, что необходимые расширения присутствуют в запросе
0:d=0 hl=4 l= 443 cons: SEQUENCE
4:d=1 hl=4 l= 360 cons: SEQUENCE
8:d=2 hl=2 l= 1 prim: INTEGER :00
11:d=2 hl=3 l= 159 cons: SEQUENCE
14:d=3 hl=2 l= 11 cons: SET
16:d=4 hl=2 l= 9 cons: SEQUENCE
18:d=5 hl=2 l= 3 prim: OBJECT :countryName
23:d=5 hl=2 l= 2 prim: PRINTABLESTRING :RU
27:d=3 hl=2 l= 15 cons: SET
29:d=4 hl=2 l= 13 cons: SEQUENCE
31:d=5 hl=2 l= 3 prim: OBJECT :stateOrProvinceName
36:d=5 hl=2 l= 6 prim: UTF8STRING :Moscow
44:d=3 hl=2 l= 15 cons: SET
46:d=4 hl=2 l= 13 cons: SEQUENCE
48:d=5 hl=2 l= 3 prim: OBJECT :localityName
53:d=5 hl=2 l= 6 prim: UTF8STRING :Moscow
61:d=3 hl=2 l= 33 cons: SET
63:d=4 hl=2 l= 31 cons: SEQUENCE
65:d=5 hl=2 l= 3 prim: OBJECT :organizationName
70:d=5 hl=2 l= 24 prim: UTF8STRING :Internet Widgits Pty Ltd
96:d=3 hl=2 l= 32 cons: SET
98:d=4 hl=2 l= 30 cons: SEQUENCE
100:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName
105:d=5 hl=2 l= 23 prim: UTF8STRING :Certification Authority
130:d=3 hl=2 l= 13 cons: SET
132:d=4 hl=2 l= 11 cons: SEQUENCE
134:d=5 hl=2 l= 3 prim: OBJECT :commonName
139:d=5 hl=2 l= 4 prim: UTF8STRING :TEST
145:d=3 hl=2 l= 26 cons: SET
147:d=4 hl=2 l= 24 cons: SEQUENCE
149:d=5 hl=2 l= 9 prim: OBJECT :emailAddress
160:d=5 hl=2 l= 11 prim: IA5STRING :ca@test.com
173:d=2 hl=2 l= 99 cons: SEQUENCE
175:d=3 hl=2 l= 28 cons: SEQUENCE
177:d=4 hl=2 l= 6 prim: OBJECT :GOST R 34.10-2001
185:d=4 hl=2 l= 18 cons: SEQUENCE
187:d=5 hl=2 l= 7 prim: OBJECT :id-GostR3410-2001-CryptoPro-A-ParamSet
196:d=5 hl=2 l= 7 prim: OBJECT :id-GostR3411-94-CryptoProParamSet
205:d=3 hl=2 l= 67 prim: BIT STRING
274:d=2 hl=2 l= 92 cons: cont [ 0 ]
276:d=3 hl=2 l= 90 cons: SEQUENCE
278:d=4 hl=2 l= 9 prim: OBJECT :Extension Request
289:d=4 hl=2 l= 77 cons: SET
291:d=5 hl=2 l= 75 cons: SEQUENCE
293:d=6 hl=2 l= 9 cons: SEQUENCE
295:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Basic Constraints
300:d=7 hl=2 l= 2 prim: OCTET STRING [HEX DUMP]:3000
304:d=6 hl=2 l= 11 cons: SEQUENCE
306:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Key Usage
311:d=7 hl=2 l= 4 prim: OCTET STRING [HEX DUMP]:030205E0
317:d=6 hl=2 l= 29 cons: SEQUENCE
319:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Certificate Policies
324:d=7 hl=2 l= 22 prim: OCTET STRING [HEX DUMP]:3014300806062A8503647101300806062A8503647102
348:d=6 hl=2 l= 18 cons: SEQUENCE
350:d=7 hl=2 l= 5 prim: OBJECT :1.2.643.100.111
357:d=7 hl=2 l= 9 prim: OCTET STRING [HEX DUMP]:0C074F70656E53534C
368:d=1 hl=2 l= 10 cons: SEQUENCE
370:d=2 hl=2 l= 6 prim: OBJECT :GOST R 34.11-94 with GOST R 34.10-2001
378:d=2 hl=2 l= 0 prim: NULL
380:d=1 hl=2 l= 65 prim: BIT STRING
Однако, если на основании этого запроса создать самоподписанный сертификат командой
openssl x509 -req -in request.pem -signkey private.pem -days 365 -out test.crt
то в полученном сертификате расширения уже отсутствуют
0:d=0 hl=4 l= 563 cons: SEQUENCE
4:d=1 hl=4 l= 480 cons: SEQUENCE
8:d=2 hl=2 l= 9 prim: INTEGER :BCE0124974A43C3D
19:d=2 hl=2 l= 10 cons: SEQUENCE
21:d=3 hl=2 l= 6 prim: OBJECT :GOST R 34.11-94 with GOST R 34.10-2001
29:d=3 hl=2 l= 0 prim: NULL
31:d=2 hl=3 l= 159 cons: SEQUENCE
34:d=3 hl=2 l= 11 cons: SET
36:d=4 hl=2 l= 9 cons: SEQUENCE
38:d=5 hl=2 l= 3 prim: OBJECT :countryName
43:d=5 hl=2 l= 2 prim: PRINTABLESTRING :RU
47:d=3 hl=2 l= 15 cons: SET
49:d=4 hl=2 l= 13 cons: SEQUENCE
51:d=5 hl=2 l= 3 prim: OBJECT :stateOrProvinceName
56:d=5 hl=2 l= 6 prim: UTF8STRING :Moscow
64:d=3 hl=2 l= 15 cons: SET
66:d=4 hl=2 l= 13 cons: SEQUENCE
68:d=5 hl=2 l= 3 prim: OBJECT :localityName
73:d=5 hl=2 l= 6 prim: UTF8STRING :Moscow
81:d=3 hl=2 l= 33 cons: SET
83:d=4 hl=2 l= 31 cons: SEQUENCE
85:d=5 hl=2 l= 3 prim: OBJECT :organizationName
90:d=5 hl=2 l= 24 prim: UTF8STRING :Internet Widgits Pty Ltd
116:d=3 hl=2 l= 32 cons: SET
118:d=4 hl=2 l= 30 cons: SEQUENCE
120:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName
125:d=5 hl=2 l= 23 prim: UTF8STRING :Certification Authority
150:d=3 hl=2 l= 13 cons: SET
152:d=4 hl=2 l= 11 cons: SEQUENCE
154:d=5 hl=2 l= 3 prim: OBJECT :commonName
159:d=5 hl=2 l= 4 prim: UTF8STRING :TEST
165:d=3 hl=2 l= 26 cons: SET
167:d=4 hl=2 l= 24 cons: SEQUENCE
169:d=5 hl=2 l= 9 prim: OBJECT :emailAddress
180:d=5 hl=2 l= 11 prim: IA5STRING :ca@test.com
193:d=2 hl=2 l= 30 cons: SEQUENCE
195:d=3 hl=2 l= 13 prim: UTCTIME :180724052352Z
210:d=3 hl=2 l= 13 prim: UTCTIME :190724052352Z
225:d=2 hl=3 l= 159 cons: SEQUENCE
228:d=3 hl=2 l= 11 cons: SET
230:d=4 hl=2 l= 9 cons: SEQUENCE
232:d=5 hl=2 l= 3 prim: OBJECT :countryName
237:d=5 hl=2 l= 2 prim: PRINTABLESTRING :RU
241:d=3 hl=2 l= 15 cons: SET
243:d=4 hl=2 l= 13 cons: SEQUENCE
245:d=5 hl=2 l= 3 prim: OBJECT :stateOrProvinceName
250:d=5 hl=2 l= 6 prim: UTF8STRING :Moscow
258:d=3 hl=2 l= 15 cons: SET
260:d=4 hl=2 l= 13 cons: SEQUENCE
262:d=5 hl=2 l= 3 prim: OBJECT :localityName
267:d=5 hl=2 l= 6 prim: UTF8STRING :Moscow
275:d=3 hl=2 l= 33 cons: SET
277:d=4 hl=2 l= 31 cons: SEQUENCE
279:d=5 hl=2 l= 3 prim: OBJECT :organizationName
284:d=5 hl=2 l= 24 prim: UTF8STRING :Internet Widgits Pty Ltd
310:d=3 hl=2 l= 32 cons: SET
312:d=4 hl=2 l= 30 cons: SEQUENCE
314:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName
319:d=5 hl=2 l= 23 prim: UTF8STRING :Certification Authority
344:d=3 hl=2 l= 13 cons: SET
346:d=4 hl=2 l= 11 cons: SEQUENCE
348:d=5 hl=2 l= 3 prim: OBJECT :commonName
353:d=5 hl=2 l= 4 prim: UTF8STRING :TEST
359:d=3 hl=2 l= 26 cons: SET
361:d=4 hl=2 l= 24 cons: SEQUENCE
363:d=5 hl=2 l= 9 prim: OBJECT :emailAddress
374:d=5 hl=2 l= 11 prim: IA5STRING :ca@test.com
387:d=2 hl=2 l= 99 cons: SEQUENCE
389:d=3 hl=2 l= 28 cons: SEQUENCE
391:d=4 hl=2 l= 6 prim: OBJECT :GOST R 34.10-2001
399:d=4 hl=2 l= 18 cons: SEQUENCE
401:d=5 hl=2 l= 7 prim: OBJECT :id-GostR3410-2001-CryptoPro-A-ParamSet
410:d=5 hl=2 l= 7 prim: OBJECT :id-GostR3411-94-CryptoProParamSet
419:d=3 hl=2 l= 67 prim: BIT STRING
488:d=1 hl=2 l= 10 cons: SEQUENCE
490:d=2 hl=2 l= 6 prim: OBJECT :GOST R 34.11-94 with GOST R 34.10-2001
498:d=2 hl=2 l= 0 prim: NULL
500:d=1 hl=2 l= 65 prim: BIT STRING
Что еще необходимо указать в конфигурационном файле OpenSSL чтобы в сертификат копировались расширения из запроса?