आप अपने प्रमाणन प्राधिकरण के साथ एक प्रमाणपत्र हस्ताक्षर अनुरोध पर हस्ताक्षर कैसे करते हैं?


197

अपनी खोज के दौरान, मुझे SSL प्रमाणपत्र हस्ताक्षर करने के अनुरोध के कई तरीके मिले:

  1. x509मॉड्यूल का उपयोग :

    openssl x509 -req -days 360 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
    
  2. caमॉड्यूल का उपयोग :

    openssl ca -cert ca.crt -keyfile ca.key -in server.csr -out server.crt
    

नोट: मैं इस एक के लिए सही मापदंडों के उपयोग के बारे में अनिश्चित हूं। कृपया सही उपयोग की सलाह दें यदि मैं इसका उपयोग कर रहा हूं।

अपने प्रमाणन प्राधिकरण के साथ प्रमाणपत्र अनुरोधों पर हस्ताक्षर करने के लिए किसी को किस तरह का उपयोग करना चाहिए? क्या एक विधि दूसरे से बेहतर है (उदाहरण के लिए, एक को पदावनत किया जा रहा है)?



1
मुझे यह छोटी स्क्रिप्ट पसंद है जो एक सीए सेट करती है और आपको हस्ताक्षरित "अधीनस्थ" प्रमाण पत्र बनाने की अनुमति देती है। ध्यान दें, यदि आप चाहते हैं कि आपका सिस्टम सेर्ट्स के बारे में खुश रहे (जैसे S / MIME या whatnot के लिए), तो आपको CA प्रमाणपत्र को "विश्वसनीय रूट" के रूप में जोड़ना होगा।
जार

मैं जो देख सकता हूं, caउन मामलों के लिए है जब आप सीए बनने के बारे में अधिक गंभीर हैं।
x- यूरी

आपको मेरा जवाब दिलचस्प लग सकता है ।
x-yuri

स्टैक ओवरफ्लो प्रोग्रामिंग और विकास के सवालों के लिए एक साइट है। यह प्रश्न ऑफ़-टॉपिक प्रतीत होता है क्योंकि यह प्रोग्रामिंग या विकास के बारे में नहीं है। देखें किन विषयों मैं यहाँ के बारे में पूछ सकते हैं सहायता केंद्र में। शायद सुपर यूजर या यूनिक्स और लिनक्स स्टैक एक्सचेंज पूछने के लिए बेहतर जगह होगी।
jww

जवाबों:


459
1. Using the x509 module
openssl x509 ...
...

2 Using the ca module
openssl ca ...
...

आप उन आदेशों की प्रस्तावना को याद कर रहे हैं।

यह दो-चरणीय प्रक्रिया है। सबसे पहले आप अपना CA सेट करते हैं, और फिर आप एक अंतिम इकाई प्रमाणपत्र (उर्फ सर्वर या उपयोगकर्ता) पर हस्ताक्षर करते हैं। दोनों आदेशों के दोनों एक में दो चरणों को समाप्त करते हैं। और दोनों मान लेते हैं कि आपके पास एक OpenSSL कॉन्फ़िगरेशन फ़ाइल है जो पहले से ही CA और सर्वर (अंतिम निकाय) प्रमाणपत्र दोनों के लिए सेटअप है।


सबसे पहले, एक बुनियादी विन्यास फाइल बनाएँ :

$ touch openssl-ca.cnf

फिर, इसमें निम्नलिखित जोड़ें:

HOME            = .
RANDFILE        = $ENV::HOME/.rnd

####################################################################
[ ca ]
default_ca    = CA_default      # The default ca section

[ CA_default ]

default_days     = 1000         # How long to certify for
default_crl_days = 30           # How long before next CRL
default_md       = sha256       # Use public key default MD
preserve         = no           # Keep passed DN ordering

x509_extensions = ca_extensions # The extensions to add to the cert

email_in_dn     = no            # Don't concat the email in the DN
copy_extensions = copy          # Required to copy SANs from CSR to cert

####################################################################
[ req ]
default_bits       = 4096
default_keyfile    = cakey.pem
distinguished_name = ca_distinguished_name
x509_extensions    = ca_extensions
string_mask        = utf8only

####################################################################
[ ca_distinguished_name ]
countryName         = Country Name (2 letter code)
countryName_default = US

stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = Maryland

localityName                = Locality Name (eg, city)
localityName_default        = Baltimore

organizationName            = Organization Name (eg, company)
organizationName_default    = Test CA, Limited

organizationalUnitName         = Organizational Unit (eg, division)
organizationalUnitName_default = Server Research Department

commonName         = Common Name (e.g. server FQDN or YOUR name)
commonName_default = Test CA

emailAddress         = Email Address
emailAddress_default = test@example.com

####################################################################
[ ca_extensions ]

subjectKeyIdentifier   = hash
authorityKeyIdentifier = keyid:always, issuer
basicConstraints       = critical, CA:true
keyUsage               = keyCertSign, cRLSign

उपरोक्त फ़ील्ड अधिक जटिल से ली गई हैं openssl.cnf(आप इसे पा सकते हैं /usr/lib/openssl.cnf), लेकिन मुझे लगता है कि वे सीए प्रमाण पत्र और निजी कुंजी बनाने के लिए आवश्यक हैं।

अपने स्वाद के अनुरूप ऊपर के खेतों को मोड़ें। कॉन्फ़िगरेशन फ़ाइल और कमांड विकल्पों के साथ प्रयोग करते समय चूक आपको उसी जानकारी को दर्ज करने से बचाती हैं।

मैंने CRL- प्रासंगिक सामान को छोड़ दिया है, लेकिन आपके CA के संचालन में उन्हें होना चाहिए। देखें openssl.cnfऔर संबंधित crl_extअनुभाग।

फिर, निम्नलिखित निष्पादित करें। -nodesपासवर्ड या पदबंध को छोड़ देता है ताकि आप प्रमाण पत्र की जांच कर सकते हैं। पासवर्ड या पासफ़्रेज़ को छोड़ना वास्तव में एक बुरा विचार है।

$ openssl req -x509 -config openssl-ca.cnf -newkey rsa:4096 -sha256 -nodes -out cacert.pem -outform PEM

कमांड निष्पादित होने के बाद, cacert.pemCA संचालन के लिए आपका प्रमाण पत्र cakey.pemहोगा , और निजी कुंजी होगी। निजी कुंजी याद नहीं करता है एक पासवर्ड या पदबंध की है।

आप निम्नलिखित के साथ प्रमाण पत्र को डंप कर सकते हैं।

$ openssl x509 -in cacert.pem -text -noout
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 11485830970703032316 (0x9f65de69ceef2ffc)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, ST=MD, L=Baltimore, CN=Test CA/emailAddress=test@example.com
        Validity
            Not Before: Jan 24 14:24:11 2014 GMT
            Not After : Feb 23 14:24:11 2014 GMT
        Subject: C=US, ST=MD, L=Baltimore, CN=Test CA/emailAddress=test@example.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (4096 bit)
                Modulus:
                    00:b1:7f:29:be:78:02:b8:56:54:2d:2c:ec:ff:6d:
                    ...
                    39:f9:1e:52:cb:8e:bf:8b:9e:a6:93:e1:22:09:8b:
                    59:05:9f
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                4A:9A:F3:10:9E:D7:CF:54:79:DE:46:75:7A:B0:D0:C1:0F:CF:C1:8A
            X509v3 Authority Key Identifier:
                keyid:4A:9A:F3:10:9E:D7:CF:54:79:DE:46:75:7A:B0:D0:C1:0F:CF:C1:8A

            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage:
                Certificate Sign, CRL Sign
    Signature Algorithm: sha256WithRSAEncryption
         4a:6f:1f:ac:fd:fb:1e:a4:6d:08:eb:f5:af:f6:1e:48:a5:c7:
         ...
         cd:c6:ac:30:f9:15:83:41:c1:d1:20:fa:85:e7:4f:35:8f:b5:
         38:ff:fd:55:68:2c:3e:37

और निम्नलिखित के साथ अपने उद्देश्य का परीक्षण करें (के बारे में चिंता न करें Any Purpose: Yes; "महत्वपूर्ण, CA: FALSE" देखें लेकिन "कोई भी उद्देश्य CA: हाँ" )।

$ openssl x509 -purpose -in cacert.pem -inform PEM
Certificate purposes:
SSL client : No
SSL client CA : Yes
SSL server : No
SSL server CA : Yes
Netscape SSL server : No
Netscape SSL server CA : Yes
S/MIME signing : No
S/MIME signing CA : Yes
S/MIME encryption : No
S/MIME encryption CA : Yes
CRL signing : Yes
CRL signing CA : Yes
Any Purpose : Yes
Any Purpose CA : Yes
OCSP helper : Yes
OCSP helper CA : Yes
Time Stamp signing : No
Time Stamp signing CA : Yes
-----BEGIN CERTIFICATE-----
MIIFpTCCA42gAwIBAgIJAJ9l3mnO7y/8MA0GCSqGSIb3DQEBCwUAMGExCzAJBgNV
...
aQUtFrV4hpmJUaQZ7ySr/RjCb4KYkQpTkOtKJOU1Ic3GrDD5FYNBwdEg+oXnTzWP
tTj//VVoLD43
-----END CERTIFICATE-----

भाग दो के लिए, मैं एक और विन्यास फाइल बनाने जा रहा हूँ जो आसानी से पचने योग्य है। सबसे पहले, (आप उपयोगकर्ता प्रमाण पत्र भी के लिए इनमें से किसी एक कर सकते हैं)।touchopenssl-server.cnf

$ touch openssl-server.cnf

फिर इसे खोलें, और निम्नलिखित जोड़ें।

HOME            = .
RANDFILE        = $ENV::HOME/.rnd

####################################################################
[ req ]
default_bits       = 2048
default_keyfile    = serverkey.pem
distinguished_name = server_distinguished_name
req_extensions     = server_req_extensions
string_mask        = utf8only

####################################################################
[ server_distinguished_name ]
countryName         = Country Name (2 letter code)
countryName_default = US

stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = MD

localityName         = Locality Name (eg, city)
localityName_default = Baltimore

organizationName            = Organization Name (eg, company)
organizationName_default    = Test Server, Limited

commonName           = Common Name (e.g. server FQDN or YOUR name)
commonName_default   = Test Server

emailAddress         = Email Address
emailAddress_default = test@example.com

####################################################################
[ server_req_extensions ]

subjectKeyIdentifier = hash
basicConstraints     = CA:FALSE
keyUsage             = digitalSignature, keyEncipherment
subjectAltName       = @alternate_names
nsComment            = "OpenSSL Generated Certificate"

####################################################################
[ alternate_names ]

DNS.1  = example.com
DNS.2  = www.example.com
DNS.3  = mail.example.com
DNS.4  = ftp.example.com

यदि आप विकास कर रहे हैं और सर्वर के रूप में अपने कार्य केंद्र का उपयोग करने की आवश्यकता है, तो आपको क्रोम के लिए निम्न कार्य करने की आवश्यकता हो सकती है। अन्यथा Chrome को एक सामान्य नाम अमान्य है ( ERR_CERT_COMMON_NAME_INVALID) की शिकायत हो सकती है । मुझे यकीन नहीं है कि इस संबंध में आईपी पते के बीच क्या संबंध है SAN और इस उदाहरण में एक सीएन।

# IPv4 localhost
IP.1     = 127.0.0.1

# IPv6 localhost
IP.2     = ::1

फिर, सर्वर प्रमाणपत्र अनुरोध बनाएँ। अवश्य छोड़ें -x509 *। जोड़ने -x509से एक प्रमाण पत्र बन जाएगा, और एक अनुरोध नहीं होगा।

$ openssl req -config openssl-server.cnf -newkey rsa:2048 -sha256 -nodes -out servercert.csr -outform PEM

यह कमांड निष्पादित होने के बाद, आपके पास एक अनुरोध होगा servercert.csrऔर एक निजी कुंजी होगी serverkey.pem

और आप फिर से इसका निरीक्षण कर सकते हैं।

$ openssl req -text -noout -verify -in servercert.csr
Certificate:
    verify OK
    Certificate Request:
        Version: 0 (0x0)
        Subject: C=US, ST=MD, L=Baltimore, CN=Test Server/emailAddress=test@example.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:ce:3d:58:7f:a0:59:92:aa:7c:a0:82:dc:c9:6d:
                    ...
                    f9:5e:0c:ba:84:eb:27:0d:d9:e7:22:5d:fe:e5:51:
                    86:e1
                Exponent: 65537 (0x10001)
        Attributes:
        Requested Extensions:
            X509v3 Subject Key Identifier:
                1F:09:EF:79:9A:73:36:C1:80:52:60:2D:03:53:C7:B6:BD:63:3B:61
            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Key Usage:
                Digital Signature, Key Encipherment
            X509v3 Subject Alternative Name:
                DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com
            Netscape Comment:
                OpenSSL Generated Certificate
    Signature Algorithm: sha256WithRSAEncryption
         6d:e8:d3:85:b3:88:d4:1a:80:9e:67:0d:37:46:db:4d:9a:81:
         ...
         76:6a:22:0a:41:45:1f:e2:d6:e4:8f:a1:ca:de:e5:69:98:88:
         a9:63:d0:a7

अगला, आपको इसे अपने सीए के साथ हस्ताक्षर करना होगा।


आप अपने सीए द्वारा सर्वर के प्रमाण पत्र पर हस्ताक्षर करने के लिए लगभग तैयार हैं। openssl-ca.cnfआदेश जारी करने से पहले सीए को दो और खंडों की आवश्यकता होती है।

सबसे पहले, openssl-ca.cnfनिम्न दो खंडों को खोलें और जोड़ें।

####################################################################
[ signing_policy ]
countryName            = optional
stateOrProvinceName    = optional
localityName           = optional
organizationName       = optional
organizationalUnitName = optional
commonName             = supplied
emailAddress           = optional

####################################################################
[ signing_req ]
subjectKeyIdentifier   = hash
authorityKeyIdentifier = keyid,issuer
basicConstraints       = CA:FALSE
keyUsage               = digitalSignature, keyEncipherment

दूसरा, निम्नलिखित को [ CA_default ]सेक्शन में जोड़ें openssl-ca.cnf। मैंने उन्हें पहले छोड़ दिया, क्योंकि वे चीजों को जटिल कर सकते हैं (वे उस समय अप्रयुक्त थे)। अब आप देखेंगे कि उनका उपयोग कैसे किया जाता है, इसलिए उम्मीद है कि वे समझेंगे।

base_dir      = .
certificate   = $base_dir/cacert.pem   # The CA certifcate
private_key   = $base_dir/cakey.pem    # The CA private key
new_certs_dir = $base_dir              # Location for new certs after signing
database      = $base_dir/index.txt    # Database index file
serial        = $base_dir/serial.txt   # The current serial number

unique_subject = no  # Set to 'no' to allow creation of
                     # several certificates with same subject.

तीसरा, स्पर्श index.txtऔर serial.txt:

$ touch index.txt
$ echo '01' > serial.txt

फिर, निम्नलिखित कार्य करें:

$ openssl ca -config openssl-ca.cnf -policy signing_policy -extensions signing_req -out servercert.pem -infiles servercert.csr

आपको निम्नलिखित के समान दिखना चाहिए:

Using configuration from openssl-ca.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'US'
stateOrProvinceName   :ASN.1 12:'MD'
localityName          :ASN.1 12:'Baltimore'
commonName            :ASN.1 12:'Test CA'
emailAddress          :IA5STRING:'test@example.com'
Certificate is to be certified until Oct 20 16:12:39 2016 GMT (1000 days)
Sign the certificate? [y/n]:Y

1 out of 1 certificate requests certified, commit? [y/n]Y
Write out database with 1 new entries
Data Base Updated

कमांड निष्पादित होने के बाद, आपके पास एक नया खनन सर्वर प्रमाणपत्र होगा servercert.pem। निजी कुंजी पहले बनाई गई थी और इसमें उपलब्ध है serverkey.pem

अंत में, आप निम्नलिखित के साथ अपने ताजा खनन प्रमाण पत्र का निरीक्षण कर सकते हैं:

$ openssl x509 -in servercert.pem -text -noout
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 9 (0x9)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, ST=MD, L=Baltimore, CN=Test CA/emailAddress=test@example.com
        Validity
            Not Before: Jan 24 19:07:36 2014 GMT
            Not After : Oct 20 19:07:36 2016 GMT
        Subject: C=US, ST=MD, L=Baltimore, CN=Test Server
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:ce:3d:58:7f:a0:59:92:aa:7c:a0:82:dc:c9:6d:
                    ...
                    f9:5e:0c:ba:84:eb:27:0d:d9:e7:22:5d:fe:e5:51:
                    86:e1
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                1F:09:EF:79:9A:73:36:C1:80:52:60:2D:03:53:C7:B6:BD:63:3B:61
            X509v3 Authority Key Identifier:
                keyid:42:15:F2:CA:9C:B1:BB:F5:4C:2C:66:27:DA:6D:2E:5F:BA:0F:C5:9E

            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Key Usage:
                Digital Signature, Key Encipherment
            X509v3 Subject Alternative Name:
                DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com
            Netscape Comment:
                OpenSSL Generated Certificate
    Signature Algorithm: sha256WithRSAEncryption
         b1:40:f6:34:f4:38:c8:57:d4:b6:08:f7:e2:71:12:6b:0e:4a:
         ...
         45:71:06:a9:86:b6:0f:6d:8d:e1:c5:97:8d:fd:59:43:e9:3c:
         56:a5:eb:c8:7e:9f:6b:7a

इससे पहले, आप के लिए निम्नलिखित जोड़ा CA_default: copy_extensions = copy। यह प्रतिलिपि अनुरोध करने वाले व्यक्ति द्वारा प्रदान की गई एक्सटेंशन है।

यदि आप छोड़ देते हैं copy_extensions = copy, तो आपके सर्वर प्रमाणपत्र में विषय वैकल्पिक नाम (SAN) www.example.comऔर जैसे की कमी होगी mail.example.com

यदि आप उपयोग करते हैं copy_extensions = copy, लेकिन अनुरोध पर विचार नहीं करते हैं, तो अनुरोधकर्ता आपको एक अधीनस्थ रूट (सर्वर या उपयोगकर्ता प्रमाणपत्र के बजाय) पर हस्ताक्षर करने में सक्षम कर सकता है। जिसका अर्थ है कि वह आपके विश्वसनीय रूट पर वापस उस प्रमाण पत्र को प्रमाणित करने में सक्षम होगा। openssl req -verifyहस्ताक्षर करने से पहले अनुरोध को सत्यापित करना सुनिश्चित करें ।


यदि आप इसे छोड़ देते हैं unique_subject या इसे सेट करते हैं yes, तो आपको केवल विषय के विशिष्ट नाम के तहत एक प्रमाण पत्र बनाने की अनुमति होगी ।

unique_subject = yes            # Set to 'no' to allow creation of
                                # several ctificates with same subject.

प्रयोग करते समय दूसरा प्रमाण पत्र बनाने की कोशिश करने के परिणामस्वरूप सीए के निजी कुंजी के साथ अपने सर्वर के प्रमाण पत्र पर हस्ताक्षर करते समय निम्नलिखित परिणाम होंगे:

Sign the certificate? [y/n]:Y
failed to update database
TXT_DB error number 2

तो unique_subject = noपरीक्षण के लिए एकदम सही है।


यदि आप यह सुनिश्चित करना चाहते हैं कि संगठनात्मक नाम स्व-हस्ताक्षरित सीए, अधीनस्थ सीए और एंड-एंटिटी प्रमाणपत्रों के बीच संगत है , तो अपनी सीए कॉन्फ़िगरेशन फ़ाइलों में निम्न जोड़ें:

[ policy_match ]
organizationName = match

यदि आप संगठनात्मक नाम बदलने की अनुमति देना चाहते हैं, तो उपयोग करें:

[ policy_match ]
organizationName = supplied

X.509 / PKIX प्रमाणपत्र में DNS नामों की हैंडलिंग से संबंधित अन्य नियम हैं। नियमों के लिए इन दस्तावेजों का संदर्भ लें:

RFC 6797 और RFC 7469 सूचीबद्ध हैं, क्योंकि वे अन्य RFC और CA / B दस्तावेजों की तुलना में अधिक प्रतिबंधात्मक हैं। RFC के 6797 और 7469 IP पते की अनुमति नहीं देते हैं, या तो।


4
उस व्यापक उत्तर के लिए धन्यवाद ... हालांकि, मैं यहां खो गया हूं। मैंने जो कुछ भी लिखा है उससे आप समझ गए हैं: openssl reqसीएसआर उत्पन्न करने के लिए उपयोग किया जाता है, openssl req -x509सीए प्रमाण पत्र बनाने के लिए उपयोग किया जाता है (मैंने किसी अन्य स्थान पर देखा जो आप स्व-हस्ताक्षरित प्रमाण पत्र भी बना सकते हैं), openssl caका उपयोग सीए प्रमाणपत्र के साथ सीएसआर पर हस्ताक्षर करने के लिए किया जाता है। सही? मुझे भी भ्रमित करता है कि कमांड के आधार पर अलग-अलग मानों के साथ Opensl.cnf फ़ाइल के समान भागों का उपयोग किया जाता है ... मुझे लगता है कि मैं अब पूरी तरह से खो गया हूं।
बर्नार्ड रॉसैट

27
सबसे पहले, openssl req -x509CA बनाने के लिए उपयोग किया जाता है। दूसरा, openssl reqसर्वर का CSR बनाने के लिए उपयोग किया जाता है। तीसरा, openssl caसर्वर प्रमाणपत्र बनाने और CA के हस्ताक्षर के साथ इसे प्रमाणित करने के लिए उपयोग किया जाता है।
jww

1
"क्या मुझे भी भ्रमित करता है कि खुलता है वही हिस्सा ..cnf ..." - सही है। इसलिए मैंने उन्हें तुम्हारे लिए openssl-ca.cnfऔर में तोड़ दिया openssl-server.cnf। आपके द्वारा इनका उपयोग करने के बाद और अनुभागों को कैसे लागू किया जाता है, आप इन्हें एक राक्षसी में जोड़ सकते हैं openssl.cnf
jww

1
@JeffPuckettII - इसका एक सामान्य वर्ग। इसका उपयोग CA उपयोगिता और Req उपयोगिता दोनों द्वारा किया जाता है। उन्हें v3 एक्सटेंशन होना चाहिए।
jww

5
डिफ़ॉल्ट 30 दिनों से अलग कुछ के लिए @ahnkle उपयोग -दिवस विकल्प। ओपनएसएसएल डॉक्स
जॉर्ज

14

@Jww के उत्तर के अलावा, मैं यह कहना चाहूंगा कि कॉन्फ़िगरेशन Opensl-ca.cnf में है,

default_days     = 1000         # How long to certify for

इस रूट-सीए द्वारा हस्ताक्षरित प्रमाण पत्र मान्य होने वाले दिनों की डिफ़ॉल्ट संख्या को परिभाषित करेगा। रूट-सीए की वैधता निर्धारित करने के लिए आपको '-days n' विकल्प का उपयोग करना चाहिए:

openssl req -x509 -days 3000 -config openssl-ca.cnf -newkey rsa:4096 -sha256 -nodes -out cacert.pem -outform PEM

ऐसा करने में विफल रहने पर, आपका रूट-सीए केवल एक महीने के डिफ़ॉल्ट के लिए मान्य होगा और इस रूट CA द्वारा हस्ताक्षरित किसी भी प्रमाण पत्र की भी एक महीने की वैधता होगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.