Создать значение sha256 для использования в CertificateTransparencyEnforcementDisabledForLegacyCas
Начиная с Chrome 68 обеспечивается прозрачность сертификатов. Это большая проблема с SSL-расшифровкой нашего корпоративного прокси.
Сертификат прокси добавляется в хранилище сертификатов системы, до Chrome 68 это работало как чудо. Существует политика CertificateTransparencyEnforcementDisabledForLegacyCas, которая дает возможность добавить такой сертификат и отключить принудительное применение для него. К сожалению, я понятия не имею, как генерировать упомянутый хеш:
Хэш subjectPublicKeyInfo указывается путем объединения имени алгоритма хеширования, символа "/" и кодирования Base64 этого алгоритма хеширования, применяемого к DER-кодированному subjectPublicKeyInfo указанного сертификата. Эта кодировка Base64 имеет тот же формат, что и отпечаток SPKI, как определено в RFC 7469, раздел 2.4. Нераспознанные алгоритмы хеширования игнорируются. Единственный поддерживаемый алгоритм хеширования на данный момент это "sha256".
Поиск в Google не помог, и я был бы рад, если бы кто-нибудь, у кого была такая же проблема, мог помочь мне.
Большое спасибо!
Sven
1 ответ
Чтобы получить base64-хэш subjectPublicKeyInfo (SPKI), вы можете использовать openssl со следующим заклинанием командной строки:
openssl x509 -pubkey -noout -in <path to PEM cert> | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
и создать строку, необходимую для политики:
printf 'sha256/%s\n' `openssl x509 -pubkey -noout -in <path to PEM cert> | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64`
Однако, если сертификат не является публично доверенным, а вместо этого доверенным вручную, он не должен применять политику CT. Если вы считаете, что получаете ошибку, когда вам не следует сообщать об ошибке по адресу http://crbug.com/new