আপনার রুট সিএতে একই প্রাইভেট কীটি রাখা সমস্ত শংসাপত্রগুলিকে নতুন রুটের বিপরীতে সাফল্যের সাথে বৈধতা অব্যাহত রাখতে দেয়; আপনার যা যা প্রয়োজন তা হ'ল নতুন মূলকে বিশ্বাস করা।
শংসাপত্র স্বাক্ষরকারী সম্পর্কটি ব্যক্তিগত কী থেকে স্বাক্ষরের উপর ভিত্তি করে; নতুন বৈধতার সময়কালে এবং প্রয়োজনীয়তার সাথে পরিবর্তিত অন্য যে কোনও নতুন বৈশিষ্ট্য সহ একটি নতুন পাবলিক শংসাপত্র তৈরি করার সময় একই প্রাইভেট কী (এবং, স্পষ্টতই, একই পাবলিক কী) রেখে রাখা আস্থার সম্পর্কটিকে রাখে। সিআরএলগুলিও, প্রাইভেট কী দ্বারা স্বাক্ষরিত শংসাপত্রের মতো পুরানো শংসাপত্র থেকে নতুন পর্যন্ত চালিয়ে যেতে পারে।
সুতরাং, আসুন যাচাই করা যাক!
একটি মূল সিএ করুন:
openssl req -new -x509 -keyout root.key -out origroot.pem -days 3650 -nodes
এটি থেকে একটি শিশু শংসাপত্র তৈরি করুন:
openssl genrsa -out cert.key 1024
openssl req -new -key cert.key -out cert.csr
সন্তানের প্রত্যয়টিতে স্বাক্ষর করুন:
openssl x509 -req -in cert.csr -CA origroot.pem -CAkey root.key -create_serial -out cert.pem
rm cert.csr
সমস্ত সেট আছে, সাধারণ শংসাপত্র সম্পর্ক। আসুন বিশ্বাস যাচাই করুন:
# openssl verify -CAfile origroot.pem -verbose cert.pem
cert.pem: OK
ঠিক আছে, তাই এখন বলা যাক 10 বছর কেটে গেছে। আসুন একই মূলের ব্যক্তিগত কী থেকে একটি নতুন পাবলিক শংসাপত্র তৈরি করা যাক।
openssl req -new -key root.key -out newcsr.csr
openssl x509 -req -days 3650 -in newcsr.csr -signkey root.key -out newroot.pem
rm newcsr.csr
এবং .. এটা কাজ করে?
# openssl verify -CAfile newroot.pem -verbose cert.pem
cert.pem: OK
কিন্তু কেন? তারা বিভিন্ন ফাইল, তাই না?
# sha1sum newroot.pem
62577e00309e5eacf210d0538cd79c3cdc834020 newroot.pem
# sha1sum origroot.pem
c1d65a6cdfa6fc0e0a800be5edd3ab3b603e1899 origroot.pem
হ্যাঁ, তবে, এর অর্থ এই নয় যে নতুন সার্বজনিক কী ক্রিপ্টোগ্রাফিকভাবে শংসাপত্রের স্বাক্ষরের সাথে মেলে না। বিভিন্ন সিরিয়াল নম্বর, একই মডুলাস:
# openssl x509 -noout -text -in origroot.pem
Serial Number:
c0:67:16:c0:8a:6b:59:1d
...
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:bd:56:b5:26:06:c1:f6:4c:f4:7c:14:2c:0d:dd:
3c:eb:8f:0a:c0:9d:d8:b4:8c:b5:d9:c7:87:4e:25:
8f:7c:92:4d:8f:b3:cc:e9:56:8d:db:f7:fd:d3:57:
1f:17:13:25:e7:3f:79:68:9f:b5:20:c9:ef:2f:3d:
4b:8d:23:fe:52:98:15:53:3a:91:e1:14:05:a7:7a:
9b:20:a9:b2:98:6e:67:36:04:dd:a6:cb:6c:3e:23:
6b:73:5b:f1:dd:9e:70:2b:f7:6e:bd:dc:d1:39:98:
1f:84:2a:ca:6c:ad:99:8a:fa:05:41:68:f8:e4:10:
d7:a3:66:0a:45:bd:0e:cd:9d
# openssl x509 -noout -text -in newroot.pem
Serial Number:
9a:a4:7b:e9:2b:0e:2c:32
...
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:bd:56:b5:26:06:c1:f6:4c:f4:7c:14:2c:0d:dd:
3c:eb:8f:0a:c0:9d:d8:b4:8c:b5:d9:c7:87:4e:25:
8f:7c:92:4d:8f:b3:cc:e9:56:8d:db:f7:fd:d3:57:
1f:17:13:25:e7:3f:79:68:9f:b5:20:c9:ef:2f:3d:
4b:8d:23:fe:52:98:15:53:3a:91:e1:14:05:a7:7a:
9b:20:a9:b2:98:6e:67:36:04:dd:a6:cb:6c:3e:23:
6b:73:5b:f1:dd:9e:70:2b:f7:6e:bd:dc:d1:39:98:
1f:84:2a:ca:6c:ad:99:8a:fa:05:41:68:f8:e4:10:
d7:a3:66:0a:45:bd:0e:cd:9d
আসল বিশ্ব শংসাপত্র বৈধতাতে এটি কাজ করছে তা যাচাই করতে আরও কিছুটা এগিয়ে চলুন।
একটি অ্যাপাচে উদাহরণস্বরূপ আগুন জ্বলুন, এবং আসুন এটি দেওয়া (ডিবিয়ান ফাইল কাঠামো, প্রয়োজন অনুযায়ী সামঞ্জস্য করুন):
# cp cert.pem /etc/ssl/certs/
# cp origroot.pem /etc/ssl/certs/
# cp newroot.pem /etc/ssl/certs/
# cp cert.key /etc/ssl/private/
আমরা VirtualHost
443-এ শ্রবণ করার জন্য এই নির্দেশাবলী সেট করব - মনে রাখবেন যে উত্পন্ন এবং স্বাক্ষরিত হওয়ার newroot.pem
সময়ও মূল শংসাপত্রটি উপস্থিত cert.pem
ছিল না ।
SSLEngine on
SSLCertificateFile /etc/ssl/certs/cert.pem
SSLCertificateKeyFile /etc/ssl/private/cert.key
SSLCertificateChainFile /etc/ssl/certs/newroot.pem
আসুন ওপেনসেল এটি কীভাবে দেখে তা পরীক্ষা করে দেখুন:
# openssl s_client -showcerts -CAfile newroot.pem -connect localhost:443
Certificate chain
0 s:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=server.lan
i:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=root
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
1 s:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=root
i:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=root
-----BEGIN CERTIFICATE-----
MIICHzCCAYgCCQCapHvpKw4sMjANBgkqhkiG9w0BAQUFADBUMQswCQYDVQQGEwJB
...
-----END CERTIFICATE-----
(this should match the actual contents of newroot.pem)
...
Verify return code: 0 (ok)
ঠিক আছে, এবং এমএস এর ক্রিপ্টো এপিআই ব্যবহার করে একটি ব্রাউজার সম্পর্কে কীভাবে? প্রথমে মূলকে বিশ্বাস করতে হবে, তারপরে নতুন রুটের ক্রমিক সংখ্যা সহ এটি বেশ ভাল:
এবং, আমাদের এখনও পুরানো মূলের সাথে কাজ করা উচিত। চারপাশে অ্যাপাচের কনফিগারেশনটি স্যুইচ করুন:
SSLEngine on
SSLCertificateFile /etc/ssl/certs/cert.pem
SSLCertificateKeyFile /etc/ssl/private/cert.key
SSLCertificateChainFile /etc/ssl/certs/origroot.pem
অ্যাপাচে সম্পূর্ণ পুনঃসূচনা করুন, একটি পুনরায় লোড শংসাপত্রগুলি সঠিকভাবে স্যুইচ করবে না।
# openssl s_client -showcerts -CAfile origroot.pem -connect localhost:443
Certificate chain
0 s:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=server.lan
i:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=root
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
1 s:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=root
i:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=root
-----BEGIN CERTIFICATE-----
MIIC3jCCAkegAwIBAgIJAMBnFsCKa1kdMA0GCSqGSIb3DQEBBQUAMFQxCzAJBgNV
...
-----END CERTIFICATE-----
(this should match the actual contents of origroot.pem)
...
Verify return code: 0 (ok)
এবং, এমএস ক্রিপ্টো এপিআই ব্রাউজারের সাহায্যে অ্যাপাচি পুরানো রুট উপস্থাপন করছে, তবে নতুন রুট এখনও কম্পিউটারের বিশ্বাসযোগ্য রুট স্টোরে রয়েছে। এটি স্বয়ংক্রিয়ভাবে এটি সন্ধান করবে এবং আপাচে ভিন্ন শৃঙ্খলা (পুরানো মূল) উপস্থাপন করা সত্ত্বেও বিশ্বস্ত (নতুন) মূলের বিরুদ্ধে শংসাপত্রটি বৈধ করবে। বিশ্বস্ত শিকড় থেকে নতুন রুট কেটে ফেলার এবং মূল রুট সার্ট যুক্ত করার পরে, সমস্ত কিছু ঠিক আছে:
সেজন্যই এটা! আপনি পুনর্নবীকরণের সময় একই বেসরকারী কীটি রাখুন, নতুন বিশ্বস্ত রুটটিতে অদলবদল করুন এবং এটি বেশ কার্যকরভাবে কাজ করে । শুভকামনা!