หากคุณดูใบรับรองที่เข้ารหัส google.com จะโฆษณาคีย์ ECC 256 บิตด้วย ECDSA_P256
พารามิเตอร์. อัลกอริทึมลายเซ็นคือ sha256RSA ฉันพยายามทำสิ่งที่คล้ายกันให้สำเร็จด้วยการเรียกใช้ชุดคำสั่งด้านล่าง แต่เนื่องจาก -ย่อยอาหาร
พารามิเตอร์ที่ฉันใช้คือ -sha256
ผลลัพธ์คืออัลกอริธึมลายเซ็น 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 -วัน 365 \
-config ./hmca.conf -reqexts SAN -ส่วนขยาย SAN -ออก ./hmca-ec.crt
ไฟล์ conf (ถ้ามันสำคัญ) มีลักษณะดังนี้:
[ต้องการ]
Distributed_name = ผู้กำกับ
x509_extensions = SAN
req_extensions = SAN
พรอมต์ = ไม่
[ซาน]
subjectKeyIdentifier=แฮช
subjectAltName = dirName:ผู้อำนวยการ
ExtendedKeyUsage = serverAuth, clientAuth
ข้อจำกัดพื้นฐาน = CA:TRUE
keyUsage = สำคัญ, digitalSignature, keyAgreement, keyCertSign
[ผู้กำกับ]
ซี = สหรัฐอเมริกา
O = ก
CN = ข