অতীতে আপনার শংসাপত্র তৈরির দুটি উপায় রয়েছে। হয় সময় নকল (1) (2), বা শংসাপত্র স্বাক্ষর করার সময় সময় ব্যবধান সংজ্ঞা (3)।
1) প্রথমত: সময়টি নষ্ট করার বিষয়ে: একটি প্রোগ্রামকে এটি সিস্টেম থেকে আলাদা তারিখের দিকে ভাবিয়ে তুলতে, দেখুন libfaketime
এবংfaketime
এটি ডেবিয়ান এ ইনস্টল করতে:
sudo apt-get install faketime
আপনি কমান্ডের faketime
আগে ব্যবহার করবেন openssl
।
ব্যবহারের উদাহরণের জন্য:
$faketime 'last friday 5 pm' /bin/date
Fri Apr 14 17:00:00 WEST 2017
$faketime '2008-12-24 08:15:42' /bin/date
Wed Dec 24 08:15:42 WET 2008
থেকে man faketime
:
প্রদত্ত কমান্ডটি বিশ্বাস করে ট্রিক হবে যে বর্তমান সিস্টেম সময় টাইমস্ট্যাম্পে নির্দিষ্ট করা হয়েছে। প্রাচীর ঘড়ি এই তারিখ এবং সময় থেকে চলতে থাকবে অন্যথায় নির্দিষ্ট না করা (উন্নত বিকল্পগুলি দেখুন)। প্রকৃতপক্ষে, ফেকটাইম লাইবফেকটাইমের জন্য একটি সহজ মোড়ক, যা একটি ছোট লাইব্রেরি লোড করতে LD_PRELOAD প্রক্রিয়া ব্যবহার করে যা টাইম (2) এবং fstat (2) এর মতো সিস্টেমে কলগুলিকে বাধা দেয়।
সুতরাং উদাহরণস্বরূপ, আপনার ক্ষেত্রে, আপনি খুব ভাল 2008 সালের তারিখটি সংজ্ঞায়িত করতে পারেন, এবং তারপরে 2010 সাল পর্যন্ত 2 বছর মেয়াদ সহ একটি শংসাপত্র তৈরি করতে পারেন।
faketime '2008-12-24 08:15:42' openssl ...
পার্শ্ব নোট হিসাবে, এই ইউটিলিটিটি ম্যাকোস সহ বেশ কয়েকটি ইউনিক্স সংস্করণে যে কোনও ধরণের প্রোগ্রামের (একটি কমান্ড লাইনের সাথে একচেটিয়া নয়) র্যাপার হিসাবে ব্যবহার করা যেতে পারে।
স্পষ্টতা হিসাবে, কেবলমাত্র এই পদ্ধতিতে লোড করা বাইনারিগুলি (এবং তাদের শিশুরা) তাদের সময় পরিবর্তন করেছে এবং জাল সময়টি সিস্টেমের বাকী বর্তমান সময়ের প্রভাব ফেলবে না।
2) @ উইজার্ড অনুসারে, আপনার কাছে datefudge
প্যাকেজটিও রয়েছে যা ব্যবহারে খুব অনুরূপ faketime
।
পার্থক্য হিসাবে, datefudge
প্রভাবিত করে না fstat
(অর্থাত্ ফাইল সময় তৈরির পরিবর্তন করে না)। এটির নিজস্ব লাইব্রেরি, ডেটফজ.ও রয়েছে যা এটি LD_PRELOAD ব্যবহার করে লোড করে।
এটিতে এমনও একটি জায়গা রয়েছে -s
static time
যেখানে অতিরিক্ত অতিরিক্ত সেকেন্ড কেটে গেলেও সময় উল্লেখ করা সর্বদা ফিরে আসে।
$ datefudge --static "2007-04-01 10:23" sh -c "sleep 3; date -R"
Sun, 01 Apr 2007 10:23:00 +0100
3) সময় নকল করার পাশাপাশি আরও সহজভাবে আপনি ওপেনএসএসএল-তে শংসাপত্র স্বাক্ষর করার সময় শংসাপত্রের বৈধতার প্রারম্ভিক এবং শেষের পয়েন্টটিও সংজ্ঞায়িত করতে পারেন ।
আপনার প্রশ্নের সাথে আপনি যে প্রশ্নটি যুক্ত করেছেন তার ভ্রান্ত ধারণাটি হ'ল অনুরোধের সময় (সিএসআর অনুরোধে) শংসাপত্রের বৈধতা সংজ্ঞায়িত হয় না, তবে এটি স্বাক্ষর করার সময়।
openssl ca
স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে ব্যবহার করার সময় বিকল্পগুলি যুক্ত করুন -startdate
এবং -enddate
।
এই দুটি অপশনের তারিখের ফর্ম্যাট openssl/crypto/x509/x509_vfy.c
, ওপেনসেল সূত্র অনুসারে , ASN1_TIME ওরফে ASN1UTCTime: ফর্ম্যাটটি অবশ্যই YYMMDDHHMMSSZ বা YYYYMMDDHHMMSSZ হওয়া উচিত।
উদ্ধৃতি openssl/crypto/x509/x509_vfy.c
:
int X509_cmp_time(const ASN1_TIME *ctm, time_t *cmp_time)
{
static const size_t utctime_length = sizeof("YYMMDDHHMMSSZ") - 1;
static const size_t generalizedtime_length = sizeof("YYYYMMDDHHMMSSZ") - 1;
ASN1_TIME *asn1_cmp_time = NULL;
int i, day, sec, ret = 0;
/*
* Note that ASN.1 allows much more slack in the time format than RFC5280.
* In RFC5280, the representation is fixed:
* UTCTime: YYMMDDHHMMSSZ
* GeneralizedTime: YYYYMMDDHHMMSSZ
*
* We do NOT currently enforce the following RFC 5280 requirement:
* "CAs conforming to this profile MUST always encode certificate
* validity dates through the year 2049 as UTCTime; certificate validity
* dates in 2050 or later MUST be encoded as GeneralizedTime."
*/
এবং পরিবর্তন লগ (2038 বাগ?) থেকে - এই পরিবর্তন লগটি কেবল অতিরিক্ত পাদটীকা হিসাবে, কারণ এটি কেবলমাত্র সরাসরি API ব্যবহার করে তাদের উদ্বেগ করে।
1.1.0e এবং 1.1.1 এর মধ্যে পরিবর্তনগুলি [এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স]
*) জেড-এর সাথে পূর্বনির্ধারিত ASN.1 প্রকারগুলি INT32, UINT32, INT64, UINT64 এবং রূপগুলি যুক্ত করুন These এগুলি লং এবং জেডএলং প্রতিস্থাপন এবং আকার নিরাপদ হওয়ার জন্য বোঝানো হয়েছে। লং এবং জেডএলং এর ব্যবহারকে নিরুৎসাহিত করা হয়েছে এবং ওপেনএসএসএল ১.২.০ এ অবমূল্যায়নের জন্য নির্ধারিত হয়েছে।
সুতরাং, ২০০৮ সালের ১ লা জানুয়ারি থেকে ২০১০ সালের জানুয়ারী পর্যন্ত একটি শংসাপত্র তৈরি করা এইভাবে করা যেতে পারে:
openssl ca -config /path/to/myca.conf -in req.csr -out ourdomain.pem \
-startdate 200801010000Z -enddate 201001010000Z
অথবা
openssl ca -config /path/to/myca.conf -in req.csr -out ourdomain.pem \
-startdate 0801010000Z -enddate 1001010000Z
-startdate
এবং -enddate
দেখা না openssl
সূত্র ও পরিবর্তনের লগ; @ গুন্টবার্ট যেমন উল্লেখ করেছে, মূল man openssl
পৃষ্ঠায় উপস্থিত না হয়েও তারা এতে উপস্থিত রয়েছে man ca
:
-startdate date
this allows the start date to be explicitly set. The format of the date is
YYMMDDHHMMSSZ (the same as an ASN1 UTCTime structure).
-enddate date
this allows the expiry date to be explicitly set. The format of the date is
YYMMDDHHMMSSZ (the same as an ASN1 UTCTime structure).
উদ্ধৃতি openssl/CHANGE
:
0.9.3 এ এবং 0.9.4 এর মধ্যে পরিবর্তনসমূহ [09 আগস্ট 1999]
*) ফিক্স-স্টার্টেট এবং -অনডেট (যা অনুপস্থিত ছিল) 'সিএ' প্রোগ্রামের পক্ষে যুক্তি।
পিএস আপনি স্ট্যাকএক্সচেঞ্জ থেকে যে প্রশ্নটির উল্লেখ করেছেন তার উত্তর হিসাবে : সাধারণত সিস্টেমের সময় পরিবর্তন করা বিশেষত উত্পাদন ব্যবস্থায় খারাপ ধারণা হয়; এবং এই উত্তরের পদ্ধতিগুলির সাথে ব্যবহার করার সময় আপনাকে মূল সুবিধার দরকার নেই।