का उपयोग कर स्वयं हस्ताक्षरित प्रमाणपत्र बनाते हुए मैं pyopenssl का उपयोग कर एक स्वयं हस्ताक्षरित X509v3 CA प्रमाणपत्र उत्पन्न करने का प्रयास कर रहा हूं। मैं विषय कुंजी पहचानकर्ता (SKID) युक्त कीड के साथ एक्सटेंशन प्राधिकरण कुंजी पहचानकर्ता (AKID) जोड़ना चाहता हूं। लेकिन मेरा निम्नलिखित कोड ब्लॉक SKID को AKID में कॉपी नहीं करता है बल्कि अपवाद फेंकता है। कृपया मुझे इस मुद्दे के समाधान में मदद :) कोड के रूप मेंpyopenssl
import OpenSSL
key = OpenSSL.crypto.PKey()
key.generate_key(OpenSSL.crypto.TYPE_RSA, 2048)
ca = OpenSSL.crypto.X509()
ca.set_version(2)
ca.set_serial_number(1)
ca.get_subject().CN = "ca.example.com"
ca.gmtime_adj_notBefore(0)
ca.gmtime_adj_notAfter(24 * 60 * 60)
ca.set_issuer(ca.get_subject())
ca.set_pubkey(key)
ca.add_extensions([
OpenSSL.crypto.X509Extension("basicConstraints", True,
"CA:TRUE, pathlen:0"),
OpenSSL.crypto.X509Extension("keyUsage", True,
"keyCertSign, cRLSign"),
OpenSSL.crypto.X509Extension("subjectKeyIdentifier", False, "hash",
subject=ca),
OpenSSL.crypto.X509Extension("authorityKeyIdentifier", False, "keyid:always",issuer=ca)
])
ca.sign(key, "sha1")
open("MyCertificate.crt.bin", "wb").write(
OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_ASN1, ca))
इस प्रकार है
अपवाद उत्पन्न करता है, तो मैं "हमेशा" में लाइन Keyid पैरामीटर से हटाने के रूप में
Traceback (most recent call last):
File "C:\Documents and Settings\Administrator\Desktop\Certificate\certi.py", line 21, in <module>
OpenSSL.crypto.X509Extension("authorityKeyIdentifier", False, "keyid:always",issuer=ca)
Error: [('X509 V3 routines', 'V2I_AUTHORITY_KEYID', 'unable to get issuer keyid'), ('X509 V3 routines', 'X509V3_EXT_nconf', 'error in extension')]
इस प्रकार अब है कोड
OpenSSL.crypto.X509 एक्सटेंशन ("प्राधिकरणकेइडिएंटिफायर", झूठी, "Keyid", जारीकर्ता = सीए)
मैं मिल AKID Keyid फ़ील्ड को रिक्त होना करने के लिए और नीचे के रूप में
00:84:13:70:73:fe:29:61:5f:33:7d:b3:74:97:3b:
3a:f3:11:01:7c:b8:37:a8:8c:72:81:ee:92:fd:91:
8a:11:b3:b3:02:b4:97:d5:f8:1b:91:54:7e:15:49:
26:6d
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Subject Key Identifier:
CE:D1:31:DE:CF:E3:E2:BC:6C:73:3D:55:F0:88:53:0A:F1:DC:31:14
X509v3 Authority Key Identifier:
0.
Signature Algorithm: sha1WithRSAEncryption
0b:7b:28:f6:b9:1e:6e:ec:53:6a:c5:77:db:c5:3f:5e:1d:ab:
e5:43:73:eb:52:24:af:39:2b:aa:a3:f6:34:e1:92:4b:3b:5e:
b6:1
अग्रिम में यू धन्यवाद दिखाए यह स्किड शामिल नहीं है।