আপনি কীভাবে আপনার শংসাপত্র কর্তৃপক্ষের সাথে শংসাপত্র স্বাক্ষর করার অনুরোধটিতে স্বাক্ষর করবেন?


195

আমার অনুসন্ধানের সময়, আমি একটি 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
আমি এই ছোট্ট স্ক্রিপ্টটি পছন্দ করি যা একটি সিএ সেট করে এবং আপনাকে স্বাক্ষরিত "অধীনস্থ" শংসাপত্র তৈরি করতে দেয়। দ্রষ্টব্য, আপনি যদি নিজের সিস্টেমে শংসাপত্রগুলি সম্পর্কে খুশি হন তবে (এস / মিমি বা হোয়াট নোটের মতো), আপনাকে সিএ শংসাপত্রটি "বিশ্বাসযোগ্য রুট" হিসাবে যুক্ত করতে হবে।
জার

আমি যা দেখতে পাচ্ছি তা থেকে, caআপনি যখন সিএ হওয়ার বিষয়ে আরও গুরুতর হন সে ক্ষেত্রে for
এক্স-ইউরি

আপনি আমার উত্তর আকর্ষণীয় হতে পারে ।
এক্স-ইউরি

স্ট্যাক ওভারফ্লো প্রোগ্রামিং এবং বিকাশের প্রশ্নের জন্য একটি সাইট। এই প্রশ্নটি অফ-টপিক হিসাবে উপস্থিত বলে মনে হচ্ছে কারণ এটি প্রোগ্রামিং বা উন্নয়ন সম্পর্কিত নয়। সহায়তা কেন্দ্রে আমি এখানে কোন বিষয় সম্পর্কে জিজ্ঞাসা করতে পারি তা দেখুন । সম্ভবত সুপার ইউজার বা ইউনিক্স ও লিনাক্স স্ট্যাক এক্সচেঞ্জ জিজ্ঞাসা করতে একটি ভাল জায়গা হবে।
jww

উত্তর:


458
1. Using the x509 module
openssl x509 ...
...

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

আপনি এই আদেশগুলি উপস্থাপনা মিস করছেন are

এটি একটি দুই ধাপ পদ্ধতি. প্রথমে আপনি আপনার সিএ সেট আপ করুন এবং তারপরে আপনি একটি শেষ সত্তার শংসাপত্র (ওরফে সার্ভার বা ব্যবহারকারীর) স্বাক্ষর করুন। দুটি কমান্ডের দুটিই দুটি পদক্ষেপকে এক করে ফেলেছে। এবং উভয়ই ধরে নেয় আপনার সিএ এবং সার্ভার (শেষ সত্তা) উভয় শংসাপত্রের জন্য ইতিমধ্যে একটি ওপেনএসএসএল কনফিগারেশন ফাইল রয়েছে।


প্রথমে একটি বেসিক কনফিগারেশন ফাইল তৈরি করুন :

$ 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), তবে আমি মনে করি তারা সিএ শংসাপত্র এবং ব্যক্তিগত কী তৈরির জন্য প্রয়োজনীয়।

আপনার স্বাদ অনুসারে উপরের ক্ষেত্রগুলিকে ঝাপটান। ডিফল্টগুলি কনফিগারেশন ফাইল এবং কমান্ড বিকল্পগুলির সাথে পরীক্ষার সময় একই তথ্য প্রবেশ করা থেকে আপনার সময় বাঁচায়।

আমি সিআরএল-সম্পর্কিত জিনিস বাদ দিয়েছি, তবে আপনার সিএ ক্রিয়াকলাপগুলিতে সেগুলি থাকা উচিত। দেখুন openssl.cnfএবং সম্পর্কিত crl_extবিভাগ।

তারপরে, নিম্নলিখিতটি কার্যকর করুন। -nodesপাসওয়ার্ড বা পাসফ্রেজ বাদ যাতে আপনি সার্টিফিকেট পরীক্ষা করতে পারেন। এটা একটা ব্যাপার সত্যিই খারাপ ধারণা পাসওয়ার্ড বর্জন বা পাসফ্রেজটি।

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

কমান্ড কার্যকর হওয়ার পরে, cacert.pemসিএ ক্রিয়াকলাপগুলির জন্য আপনার শংসাপত্র 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কিন্তু দেখ "সমালোচনামূলক, সিএ: মিথ্যা" কিন্তু "যে কোন উদ্দেশ্যের সিএ: হ্যাঁ" )।

$ 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

যদি আপনি বিকাশ করছেন এবং আপনার ওয়ার্কস্টেশনটি সার্ভার হিসাবে ব্যবহার করার প্রয়োজন পড়ে তবে ক্রোমের জন্য আপনাকে নিম্নলিখিতগুলি করার প্রয়োজন হতে পারে। অন্যথায় ক্রোম অভিযোগ করতে পারে একটি সাধারণ নামটি অবৈধ ( ERR_CERT_COMMON_NAME_INVALID) । স্যানের একটি আইপি ঠিকানা এবং এই সিএনএন-এর মধ্যে সম্পর্ক কী তা আমি নিশ্চিত নই।

# 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

এরপরে, আপনাকে এটি আপনার সিএ সহ স্বাক্ষর করতে হবে।


আপনি আপনার সিএ দ্বারা সার্ভারের শংসাপত্রটি স্বাক্ষর করতে প্রায় প্রস্তুত। CA এর 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স্বাক্ষর করার আগে অনুরোধটি যাচাই করার বিষয়টি নিশ্চিত করুন Be


যদি আপনি এটি বাদ দেন 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পরীক্ষার জন্য নিখুঁত।


আপনি যদি নিশ্চিত করতে চান যে সাংগঠনিক নামটি স্ব-স্বাক্ষরিত CA, অধস্তন সিএ এবং শেষ সত্ত্বার শংসাপত্রগুলির মধ্যে সামঞ্জস্যপূর্ণ হয় তবে আপনার সিএ কনফিগারেশন ফাইলগুলিতে নিম্নলিখিতগুলি যুক্ত করুন:

[ policy_match ]
organizationName = match

আপনি যদি সাংগঠনিক নামটি পরিবর্তনের অনুমতি দিতে চান তবে ব্যবহার করুন:

[ policy_match ]
organizationName = supplied

X.509 / PKIX শংসাপত্রগুলিতে ডিএনএস নামগুলি পরিচালনা করার বিষয়ে অন্যান্য নিয়ম রয়েছে। বিধিগুলির জন্য এই নথিগুলি পড়ুন:

আরএফসি 6797 এবং আরএফসি 7469 তালিকাভুক্ত করা হয়েছে, কারণ তারা অন্যান্য আরএফসি এবং সিএ / বি নথিগুলির তুলনায় আরও সীমাবদ্ধ। আরএফসির 6797 এবং 7469 কোনও আইপি ঠিকানার অনুমতি দেয় না


4
এই বিস্তৃত উত্তরের জন্য ধন্যবাদ ... তবে আমি এখানে এক রকম হারিয়েছি। আপনি যা লিখেছেন তা থেকে আমি যা বুঝতে পেরেছি: openssl reqসিএসআর তৈরি করতে ব্যবহৃত হয়, openssl req -x509সিএ শংসাপত্র তৈরি করতে ব্যবহৃত হয় (আমি অন্য কোনও স্থানে দেখেছি যে আপনি স্ব-স্বাক্ষরিত শংসাপত্রও তৈরি করতে পারেন), openssl caসিএ সার্টিফিকেট দিয়ে সিএসআরতে স্বাক্ষর করতে ব্যবহৃত হয়। রাইট? আমাকে যে বিষয়টিও বিভ্রান্ত করে তা হ'ল কমান্ডের উপর নির্ভর করে ওপেনএসএল সিএনএফ ফাইলের একই অংশগুলি বিভিন্ন মান সহ ব্যবহৃত হয় ... আমার মনে হয় আমি এখন সম্পূর্ণ হারিয়ে ফেলেছি।
বার্নার্ড রোসেট

27
প্রথমত, openssl req -x509সিএ তৈরি করতে ব্যবহৃত হয় দ্বিতীয়ত, openssl reqসার্ভারের সিএসআর তৈরি করতে ব্যবহৃত হয়। তৃতীয়, openssl caসার্ভার শংসাপত্র তৈরি করতে এবং CA এর স্বাক্ষর দিয়ে এটি প্রত্যয়িত করতে ব্যবহৃত হয়।
jww

1
"আমাকে যা বিভ্রান্ত করে তা হ'ল ওপেন এসএল সিএনএফের একই অংশগুলি ..." - ঠিক আছে। এটা কেন আমি তাদের মধ্যে তোমার জন্য ছড়িয়ে পড়ছিল এর openssl-ca.cnfএবং openssl-server.cnf। আপনি সেগুলিতে অভ্যস্ত হয়ে ওঠার পরে এবং বিভাগগুলি কীভাবে আহ্বান করা হয়েছে, আপনি সেগুলিকে এককথায় একত্র করতে পারেন openssl.cnf
jww

1
@ জেফপুকেটআইটিআই - এটি একটি সাধারণ অংশ। এটি সিএ ইউটিলিটি এবং রেক ইউটিলিটি উভয়ই ব্যবহার করে। সেগুলি v3 এক্সটেনশন হওয়া উচিত।
jww

5
ডিফল্ট 30 দিনের চেয়ে আলাদা কোনও কিছুর জন্য অহঙ্কলে ইউজ-ডে-এর বিকল্প। ওপেনএসএসএল ডক্স
জর্জে

14

@Jww- র উত্তর ছাড়াও, আমি বলতে চাই যে ওপেনএসএল-সিএ সিএনএফ-তে কনফিগারেশন,

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

এটি করতে ব্যর্থ হলে, আপনার রুট-সিএ কেবলমাত্র ডিফল্ট এক মাসের জন্য বৈধ হবে এবং এই মূল সিএ স্বাক্ষরিত কোনও শংসাপত্রের মেয়াদও এক মাসের হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.