कोई मुझे सटीक वाक्यविन्यास के साथ मदद कर सकता है?
यह एक तीन-चरण की प्रक्रिया है, और इसमें openssl.cnf
फ़ाइल को संशोधित करना शामिल है । आप इसे केवल कमांड लाइन विकल्पों के साथ करने में सक्षम हो सकते हैं, लेकिन मैं इसे इस तरह से नहीं करता।
अपनी openssl.cnf
फ़ाइल खोजें । यह संभावना में स्थित है /usr/lib/ssl/openssl.cnf
:
$ find /usr/lib -name openssl.cnf
/usr/lib/openssl.cnf
/usr/lib/openssh/openssl.cnf
/usr/lib/ssl/openssl.cnf
मेरे डेबियन सिस्टम पर, /usr/lib/ssl/openssl.cnf
अंतर्निहित openssl
प्रोग्राम द्वारा उपयोग किया जाता है । हाल ही में डेबियन सिस्टम पर यह स्थित है/etc/ssl/openssl.cnf
आप यह निर्धारित कर सकते हैं कि फ़ाइल में openssl.cnf
एक स्प्यूरियस जोड़कर उपयोग किया जा रहा है XXX
और देखें कि क्या openssl
चुटकुले हैं।
सबसे पहले, req
मापदंडों को संशोधित करें । उन नामों के साथ एक alternate_names
अनुभाग जोड़ें जिनका openssl.cnf
आप उपयोग करना चाहते हैं। कोई मौजूदा alternate_names
अनुभाग नहीं हैं, इसलिए इससे कोई फर्क नहीं पड़ता कि आप इसे कहां जोड़ते हैं।
[ alternate_names ]
DNS.1 = example.com
DNS.2 = www.example.com
DNS.3 = mail.example.com
DNS.4 = ftp.example.com
इसके बाद, मौजूदा [ v3_ca ]
अनुभाग में निम्नलिखित जोड़ें । सटीक स्ट्रिंग के लिए खोजें [ v3_ca ]
:
subjectAltName = @alternate_names
आप keyUsage
निम्न के लिए बदल सकते हैं [ v3_ca ]
:
keyUsage = digitalSignature, keyEncipherment
digitalSignature
और keyEncipherment
सर्वर प्रमाणपत्र के लिए मानक किराया है। चिंता मत करो nonRepudiation
। यह कंप्यूटर विज्ञान के लोगों / लड़कियों द्वारा बेकार किया गया एक बेकार सा विचार है जो वकील बनना चाहते थे। इसका मतलब कानूनी दुनिया में कुछ भी नहीं है।
अंत में, IETF ( RFC 5280 ), ब्राउज़र और CA तेज़ और ढीले चलते हैं, इसलिए यह संभवत: इससे कोई फर्क नहीं पड़ता कि आप क्या महत्वपूर्ण उपयोग प्रदान करते हैं।
दूसरा, हस्ताक्षर मापदंडों को संशोधित करें। इस लाइन को CA_default
अनुभाग के अंतर्गत खोजें :
# Extension copying option: use with caution.
# copy_extensions = copy
और इसे बदलें:
# Extension copying option: use with caution.
copy_extensions = copy
यह सुनिश्चित करता है कि SAN प्रमाण पत्र में कॉपी किए गए हैं। DNS नामों को कॉपी करने के अन्य तरीके टूट गए हैं।
तीसरा, अपना स्व-हस्ताक्षरित प्रमाणपत्र बनाएं:
$ openssl genrsa -out private.key 3072
$ openssl req -new -x509 -key private.key -sha256 -out certificate.pem -days 730
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
...
अंत में, प्रमाणपत्र की जांच करें:
$ openssl x509 -in certificate.pem -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 9647297427330319047 (0x85e215e5869042c7)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/emailAddress=test@example.com
Validity
Not Before: Feb 1 05:23:05 2014 GMT
Not After : Feb 1 05:23:05 2016 GMT
Subject: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/emailAddress=test@example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (3072 bit)
Modulus:
00:e2:e9:0e:9a:b8:52:d4:91:cf:ed:33:53:8e:35:
...
d6:7d:ed:67:44:c3:65:38:5d:6c:94:e5:98:ab:8c:
72:1c:45:92:2c:88:a9:be:0b:f9
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4
X509v3 Authority Key Identifier:
keyid:34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment, Certificate Sign
X509v3 Subject Alternative Name:
DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com
Signature Algorithm: sha256WithRSAEncryption
3b:28:fc:e3:b5:43:5a:d2:a0:b8:01:9b:fa:26:47:8e:5c:b7:
...
71:21:b9:1f:fa:30:19:8b:be:d2:19:5a:84:6c:81:82:95:ef:
8b:0a:bd:65:03:d1