Если вы посмотрите на сертификат, шифрующий google.com, он рекламирует 256-битный ключ ECC с ECDSA_P256
параметр. Алгоритм подписи — sha256RSA. Я пытался добиться чего-то подобного, выполнив приведенный ниже набор команд, но поскольку -дайджест
параметр, который я использую, -ша256
результатом всегда будет алгоритм подписи sha256ECDSA. Итак, вопрос в том, как Google это сделал и достижимо ли это с OpenSSL (1.1.1k)?
Является ли это результатом того, что их сертификат подписан сертификатом CA, который является RSA, а не ECDSA (в то время как мой является самозаверяющим корневым сертификатом ECDSA)?
openssl genpkey -genparam -out ./hmca-ec.param -algorithm EC -pkeyopt ec_paramgen_curve:prime256v1
openssl genpkey -paramfile ./hmca-ec.param -out ./hmca-ec.key -pass pass:"pass" -aes-256-ecb
openssl req -x509 -new -key ./hmca-ec.key -sha256 -days 365 \
-config ./hmca.conf -reqexts SAN -extensions SAN -out ./hmca-ec.crt
conf (если это имеет значение) выглядит так:
[требуется]
отличительное_имя = прямое
x509_extensions = САН
req_extensions = SAN
подсказка = нет
[САН]
subjectKeyIdentifier=хэш
subjectAltName = имя_каталога:direction
расширенныйKeyUsage = серверная проверка подлинности, клиентская проверка подлинности
базовые ограничения = CA:ИСТИНА
keyUsage = критический, digitalSignature, keyAgreement, keyCertSign
[прямой]
С = США
О = а
CN = б