ایس ایس ایل سرٹیفیکیٹ کی تخلیق اور استعمالات

یہ دستاویز بیان کرتا ہے کہ اوپن ایس ایس ایل ٹول سیٹ کے ذریعہ اپنے آپ کو بطور ایک روٹ سرٹیفکیٹ اتھارٹی (روٹ سی اے) کے کیسے مستحکم کرنا ہے . روٹ سی اے کے طور پر، آپ اپنے انٹرنیٹ سرور ایپلی کیشنز جیسے اپاچی اور سٹونل کے استعمال کے لئے سرٹیفکیٹ پر سائن ان اور انسٹال کرسکتے ہیں۔

فہرست

دائرہ کار
فوری آغاز
پس منظر
بنیادی شرائط
ابتدائی ترتیب
روٹ سرٹیفکیٹ تشکیل دینا
سرٹیفکیٹ سائن ان کرنے کی درخواست -سی ایس آر
سرٹیفکیٹ سائن ان
سیرٹیفکیٹ اور کی نصب کرنا
سی اے سرٹیفیکٹ تقسیم کرنا
تجدید سرٹیفکیٹس
تجارتی لحاظ سے سائنسی سرٹیفکیٹ حاصل کرنا
کرنا آپ کے سی اے سرٹیفکیٹ شائع
خلاصہ
ترتیبات فائل
حوالہ جات

دائرہ کار

یہ دستاویز ایک مخصوص، محدود مقصد کا احاطہ کرتی ہے، لیکن ایک بات یہ بھی ھے کہ یہ مشترکہ ضرورت کو پورا کرتی ہے: براؤزر، میل اور دوسرے کلائنٹس کی آپ کے سرور پر نصب سرٹیفیکیٹ کی شکایت کو حفظ ماتقدم دیتی ھے۔

ایک کمرشل روٹ سرٹیفیکیٹ اتھارٹی (سی اے) کو ساتھ ڈیلنگ کا احاطہ نہیں کرتا ھے۔ اس کے بجائے ہم خود اپنے روٹ سرٹیفیکیٹ اتھارٹی بنائیں گےاور ہم خود اس میں داخل ھونگے۔

یہ طریقہ کار لینکس پر اوپن ایس ایس ایل 0.9.6، 24 ستمبر 2000، کا استعمال کرتے ہوئے تیار کیا گیا تھا.

واپس اوپر جایئں

پس منظر

ہم خود اپنا روٹ سی اے کیوں بنائیں؟ لہذا ھم ایس ایس ایل انکرپشن کافائدہ اٹھاسکتے ہیں جو بنا کسی غیر ضروری پیسہ خرچ کیے اپنے سرٹیفیکیٹ میں سائن ھوں۔

ایک خرابی یہ ہے کہ براؤزرز ہماری ویب سائٹ جو قابل اعتماد نہیں کے بارے میں ابھی بھی شکایت کرے گا جب تک کہ ہمارا روٹ سرٹیفکیٹ امپورٹ نہیں ہوجائے گا۔ تاہم، یہ ایک بار ہوتا ہے، ہم کمرشل روٹ سی ایز سے مختلف نہیں ہیں۔

کلائنٹ صرف ہمارے روٹ سرٹیفکیٹ امپورٹ کریں گے اگرکہ وہ ہم پر اعتماد کریں۔

کمرشل سی ایز میں یہ موجود ھے کہ: وہ ان لوگوں اور تنظیموں میں وسیع تحقیق کرنے کا ارادہ کرتے ہیں جن کے لئے وہ سرٹیفکیٹ سائن کرتے ہیں۔ امپورٹ کرنے سے ان کے قابل اعتماد روٹ سرٹیفیکیٹ ( دراصل، براؤزر وینڈرز کی طرف سے شامل) ہم کہہ رہے ہیں کہ ہم ان پر بھروسہ کرتے ہیں جب وہ کسی اور کی ضمانت دیتے ہیں جو کہ وہ کہتے ہیں کہ وہ ہیں۔ ہم ایڈیشنل روٹ سی ایز پر اعتما د کر سکتے ہیں( جیسے ہم خود پر) انکے سی اے سرٹیفیکیٹس امپورٹ کرنے پر اعتماد کر سکتے ہیں۔

نوٹ: اگر آپ کمرشل محفوظ سائٹ کو چلانے کے کاروبار میں ہیں تو تجارتی طور پر سائن کئے جانے والے سرٹیفکیٹ کو حاصل کرنے کا واحد حقیقت پسندانہ انتخاب ہے۔

واپس اوپر جایئں

بنیادی شرائط

آپ کو اس کے لئے اوپن ایس ایس ایل کی ایک نصب شدہ کاپی کی ضرورت ہوگی، جو پر دستیاب ھے۔ http:/b
واپس اوپر جایئں

ابتدائی ڈھانچہ

سب سے پہلے، ہم ایک ڈائریکٹری تیار کریں گے جہاں ہم کام کرسکتے ہیں۔ اس سے کوئی فرق نہیں پڑتا کہ یہ کہاں ہے؛ میں اپنی مرضی سے ھوم ڈائریکٹری میں بنانا چاہتا ہوں۔.

# mkdir CA
# cd CA
# mkdir newcerts private
# chmod 700 newcerts private

سی اے ڈائریکٹری پر مشتمل ہوگی

سرٹیفکیٹس کا ڈیٹا بیس جسے ہم نے سائن کیا ہے

کلید، درخواستیں، اور سرٹیفکیٹ ہم تخلیق کرتے ہیں

کلید، درخواستیں، اور سرٹیفکیٹ ہم تخلیق کرتے ہیں

سرٹیفکیٹ بنانے یا سائن ان کرتے وقت یہ بھی ہماری کام کرنے والی ڈائرکٹری ہوگی

سی اے / نیوسیرٹس ڈائریکٹری مشتمل ہوگی

ہر سرٹیفکیٹ کی ایک کاپی ہم سائن کریں

ہماری سی اے پرائیویٹ کلید

یہ کلید اہم ہے:

اس کلید کو گُم نہ کریں۔ اس کے بغیر، آپ کسی بھی سرٹیفکیٹ کو سائن یا تجدید نہیں کر سکیں گے

کسی کو اس کی کلید ظاہر نہ کرو۔ اگر اس پر سمجھوتا ھوجاتا ہے تو، دوسرا کوئی آپ کی شخصیت کا روپ دھارنے کے قابل ہو جائے گا۔

ہر سرٹیفکیٹ کی ایک کاپی ہم سائن کریں

ہمارا اگلا مرحلہ سرٹیفکیٹس کے لئے ایک ڈیٹا بیس بنانا ہے جسے ہم سائن کریں گے:

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

اس کے بجائے ترتیب کاری فائل کا استعمال کرتے ہوئے جو اوپن ایس ایس ایل کے ساتھ آتا ھے۔ ہم اس ڈائرکٹری میں اپنے اپنی کم از کم ترتیب کو تشکیل دے رہے ہیں. اپنے ایڈیٹر کو شروع کریں ( وی آئی، پیکو ، ۔۔۔۔) اور ایک بنیادی اوپن ایس ایس ایل بنائیں۔ سی این ایف:
---Begin---
#
# OpenSSL configuration file.
#

# Establish working directory.

dir			= .

----End----
واپس اوپر جایئں

ایک روٹ سرٹیفکیٹ تخلیق کرنا

اوپن ایس ایس ایل کے ساتھ،کتنا ایک بڑا حصہ سرٹیفیکیٹ میں جاتا ھے ترتیبات کی فائل کے مواد پر منحصر ھے۔ کمانڈ لائن کے بجائے، یہ ایک اچھی چیز ہے، کیونکہ اس کی وضاحت کرنے کے لئے بہت کچھ ہے.

ترتیبات فائل کو سیکشن میں تقسیم کیا جاتا ہے، جو منتخب طور پر پڑھنے اور عملدرآمد اوپن ایس ایس ایل کے مطابق کمانڈ لائن کے دلائل ہیں۔ حصوں میں ان کے حوالے سے ایک یا زیادہ دوسرے حصوں میں شامل ہوسکتا ہے، جس میں ترتیب کی فائل زیادہ ماڈیولر بنانے میں مدد ملتی ہے۔ مربع بریکٹ میں ایک نام مثلا‘‘ [ریق] ہر سیکشن شروع ھوتا ھے

اب ہمیں اس میں سیکشن کو شامل کرنے کی ضرورت ہے جو کنٹرول کرے کہ سرٹیفکیٹ کیسے بنائے گئے ہیں، اور ایک سیکشن سرٹیفکیٹ کی اقسام کی تخلیق کی وضاحت کرے۔

ہمیں متعین کرنے کے لیے پہلی چیز درکار اسکا ممتاز نام ہے۔ یہ متن ہے جو اس وقت کے سرٹیفکیٹ کے مالک کی شناخت کرتا ہے۔ . جب اسے دیکھا جاتا ہے۔ یہ ترتیبات فائل میں براہ راست حوالہ نہیں دیا جاتا ہے، لیکن یہ عملدرآمد حصے میں شامل ھوتا ھے جب سرٹیفیکیٹ درخواستیں بنائیں جاتی ہیں۔ اسکی کمانڈ ھے "openssl req " لہذا سیکشن کا ٹائٹل ھے [ریق]۔

اوپن ایس ایس ایل۔۔ سی این ایف میں مندرجہ ذیل شامل کریں
---Begin---

[ req ]
default_bits		= 4096			# Size of keys
default_keyfile		= key.pem		# name of generated keys
default_md		= sha512		# message digest algorithm
string_mask		= nombstr		# permitted characters
distinguished_name	= req_distinguished_name

[ req_distinguished_name ]
# Variable name		  Prompt string
#----------------------	  ----------------------------------
0.organizationName	= Organization Name (company)
organizationalUnitName	= Organizational Unit Name (department, division)
emailAddress		= Email Address
emailAddress_max	= 40
localityName		= Locality Name (city, district)
stateOrProvinceName	= State or Province Name (full name)
countryName		= Country Name (2 letter code)
countryName_min		= 2
countryName_max		= 2
commonName		= Common Name (hostname, IP, or your name)
commonName_max		= 64

# Default values for the above, for consistency and less typing.
# Variable name			  Value
#------------------------------	  ------------------------------
0.organizationName_default	= The Sample Company
localityName_default		= Metropolis
stateOrProvinceName_default	= New York
countryName_default		= US

[ v3_ca ]
basicConstraints	= CA:TRUE
subjectKeyIdentifier	= hash
authorityKeyIdentifier	= keyid:always,issuer:always

----End----

اپنےسی اے سرٹیفکیٹ کے غیر مجاز استعمال سے اپنے آپ کو بچانے کے لئے، یہ پاس فیرس محفوظ ہے۔ ہر بار آپ سی اے سرٹیفکیٹ کا استعمال ایک درخواست کے سائن سےکرتے ہیں، تو آپ کو پاس فیرس کے لیے ترغیب دے گا۔ اب ایک محفوظ پاس فیرس لینے اور اسے محفوظ جگہ میں ڈالنے کا ایک اچھا وقت ہوگا۔

ساری تیاری اب اس مقام پر ھے کہ ہم سیلف سائن روٹ سرٹیفیکیٹ تخلیق کر سکیں۔ ہم بعض مداخلتوں کو اوورائڈ کرنا چاہتے ہیں، جو ہم صرف ترتیبات میں ڈالتے ہیں۔، لہذا ہم کمانڈ لائن پر اپنے اوورائڈ کی وضاحت کریں گے۔

اوپن ایس ایس ایل ریق’’" کمانڈ پر ہمارے اوورائڈز ہیں

1: Create a new self-signed certificate: -new -x509
2: Create a CA certificate: -extensions v3_ca
3: Make it valid for more than 30 days: -days 3650
4: Write output to specific locations: -keyout, -out
5: Use our configuration file: -config ./openssl.cnf

(روٹ سرٹیفکیٹ کی توثیق کی اصطلاح پر ایک نوٹ: جڑ سرٹیفکیٹ کی مدت ختم ہونے پر، اس کے ساتھ سائن کئے جانے والے تمام سرٹیفکیٹ اب درست نہیں ہیں. اس صورت حال کو درست کرنے کے لئے، ایک نیا روٹ سرٹیفکیٹ تخلیق اور تقسیم کرنا لازمی ہے.اسی طرح، زائد المیعاد کے ساتھ سائن ان تمام اسناد ایک خارج ہونا چاہیے، اور ایک نئے کے ساتھ دوبارہ سائن کریں. اس طرح سے بہت زیادہ کام ہوسکتا ہے، جب تک آپ کو لگتا ہے کہ آپ کو اس کی ضرورت ہو گی، آپ اپنے روٹ سرٹیفکیٹ کو کار آمد کرنا چاہتے ہیں. اس مثال میں ، ہم یہ دس سال تک کارآمد بنا رہے ہیں۔)

کمانڈ کو چلائیں جیسا کہ دکھایا جا رہا ھے۔ اس کیس میں، پی ای ایم پاس فریس ایک نئے کے لیے پوچھتا ھے،جس میں آپ کو دو بارلازمی درج کرنا ہوگا:

# openssl req -new -x509 -extensions v3_ca -keyout private/cakey.pem \
-out cacert.pem -days 3650 -config ./openssl.cnf
Using configuration from ./openssl.cnf
Generating a 4096 bit RSA private key
.......++++++
..........................++++++
writing new private key to 'private/cakey.pem'
Enter PEM pass phrase:demo
Verifying password - Enter PEM pass phrase:demo
-----
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.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Organization Name (company) [The Sample Company]:
Organizational Unit Name (department, division) []:CA Division
Email Address []:ca@sample.com
Locality Name (city, district) [Metropolis]:
State or Province Name (full name) [New York]:
Country Name (2 letter code) [US]:
Common Name (hostname, IP, or your name) []:TSC Root CA

یہ عمل دو فائلیں آؤٹ پٹ کے طور پر پیدا کرتا ہے:

1: A private key in private/cakey.pem
2: A root CA certificate in cacert.pem

cacert.pem وہ فائل ہے جسے آپ اپنے گاہکوں کو تقسیم کرنا چاہتے ہیں

پرائیویٹ کلید (سی اےکی۔ پی ای ایم) اس طرح لگ رہا ہے
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,0947F49BB28FE5F4

jlQvt9WdR9Vpg3WQT5+C3HU17bUOwvhp/r0+viMcBUCRW85UqI2BJJKTi1IwQQ4c
tyTrhYJYOP+A6JXt5BzDzZy/B7tjEMDBosPiwH2m4MaP+6wTbi1qR1pFDL3fXYDr
ZsuN08dkbw9ML6LOX5Rl6bIBL3i5hnGiqm338Fl52gNstThv0C/OZhXT3B4qsJn8
qZb3mC6U2nRaP/NpZPcEx4lv2vH7OzHTu1TZ7t0asSpgpuH58dfHPw775kZDep2F
LXA3Oeavg0TLFHkaFBUx2xaeEG6Txpt9I74aAsw1T6UbTSjqgtsK0PHdjPNfPGlY
5U3Do1pnU9hfoem/4RAOe0cCovP/xf6YPBraSFPs4XFfnWwgEtL09ReFqO9T0aSp
5ajLyBOYOBKQ3PCSu1HQDw/OzphInhKxdYg81WBBEfELzSdMFQZgmfGrt5DyyWmq
TADwWtGVvO3pEhO1STmCaNqZQSpSwEGPGo5RFkyFvyvyozWX2SZg4g1o1X40qSg9
0FMHTEB5HQebEkKBoRQMCJN/uyKXTLjNB7ibtVbZmfjsi9oNd3NJNVQQH+o9I/rP
wtFsjs+t7SKrsFB2cxZQdDlFzD6EBA+5ytebGEI1lJHcOUEa6P+LTphlwh/o1QuN
IKX2YKHA4ePrBzdgZ+xZuSLn/Qtjg/eZv6i73VXoHk8EdxfOk5xkJ+DnsNmyx0vq
W53+O05j5xsxzDJfWr1lqBlFF/OkIYCPcyK1iLs4GOwe/V0udDNwr2Uw90tefr3q
X1OZ9Dix+U0u6xXTZTETJ5dF3hV6GF7hP3Tmj9/UQdBwBzr+D8YWzQ==
-----END RSA PRIVATE KEY-----

یقینا، آپ اسے کسی کو نہیں دکھانا چاہتے ہیں! کہنے کی ضرورت نہیں، یہاں جو دکھایا گیا ہے، اب ایک پرائیویٹ کلید کے طور پر بیکار ہے

(cacert.pem) سرٹیفیکیٹ ایسا لگتا ہے:

-----BEGIN CERTIFICATE-----
MIIDrTCCAxagAwIBAgIBADANBgkqhkiG9w0BAQQFADCBnDEbMBkGA1UEChMSVGhl
IFNhbXBsZSBDb21wYW55MRQwEgYDVQQLEwtDQSBEaXZpc2lvbjEcMBoGCSqGSIb3
DQEJARYNY2FAc2FtcGxlLmNvbTETMBEGA1UEBxMKTWV0cm9wb2xpczERMA8GA1UE
CBMITmV3IFlvcmsxCzAJBgNVBAYTAlVTMRQwEgYDVQQDEwtUU0MgUm9vdCBDQTAe
Fw0wMTEyMDgwNDI3MDVaFw0wMjEyMDgwNDI3MDVaMIGcMRswGQYDVQQKExJUaGUg
U2FtcGxlIENvbXBhbnkxFDASBgNVBAsTC0NBIERpdmlzaW9uMRwwGgYJKoZIhvcN
AQkBFg1jYUBzYW1wbGUuY29tMRMwEQYDVQQHEwpNZXRyb3BvbGlzMREwDwYDVQQI
EwhOZXcgWW9yazELMAkGA1UEBhMCVVMxFDASBgNVBAMTC1RTQyBSb290IENBMIGf
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDaiAwfKB6ZBtnTRTIo6ddomt0S9ec0
NcuvtJogt0s9dXpHowh98FCDjnLtCi8du6LDTZluhlOtTFARPlV/LVnpsbyMCXMs
G2qpdjJop+XIBdvoCz2HpGXjUmym8WLqt+coWwJqUSwiEba74JG93v7TU+Xcvc00
5MWnxmKZzD/R3QIDAQABo4H8MIH5MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFG/v
yytrBtEquMX2dreysix/MlPMMIHJBgNVHSMEgcEwgb6AFG/vyytrBtEquMX2drey
six/MlPMoYGipIGfMIGcMRswGQYDVQQKExJUaGUgU2FtcGxlIENvbXBhbnkxFDAS
BgNVBAsTC0NBIERpdmlzaW9uMRwwGgYJKoZIhvcNAQkBFg1jYUBzYW1wbGUuY29t
MRMwEQYDVQQHEwpNZXRyb3BvbGlzMREwDwYDVQQIEwhOZXcgWW9yazELMAkGA1UE
BhMCVVMxFDASBgNVBAMTC1RTQyBSb290IENBggEAMA0GCSqGSIb3DQEBBAUAA4GB
ABclymJfsPOUazNQO8aIaxwVbXWS+8AFEkMMRx6O68ICAMubQBvs8Buz3ALXhqYe
FS5G13pW2ZnAlSdTkSTKkE5wGZ1RYSfyiEKXb+uOKhDN9LnajDzaMPkNDU2NDXDz
SqHk9ZiE1boQaMzjNLu+KabTLpmL9uXvFA/i+gdenFHv
-----END CERTIFICATE-----

ہم اس سرٹیفکیٹ کے مضامین سے سوالات کرسکتے ہیں کہ اوپن ایس ایس ایل کے ساتھ سیکھنے کے لئے کونسا تعلق ہے، کیا یہ کارآمد ہے، وغیرہ.

# openssl x509 -in cacert.pem -noout -text
# openssl x509 -in cacert.pem -noout -dates
# openssl x509 -in cacert.pem -noout -purpose
واپس اوپر جایئں

ایک سرٹیفکیٹ سائن ان کرنے کی درخواست بنانا (سی ایس آر)

اب ہمارے پاس روٹ سرٹیفکیٹ ہے، ہم انسٹال کرنے کے لئے کوئی بھی تعداد میں سرٹیفکیٹ ہمارے ایس ایس ایل ایپلیکیشن سے بنا سکتے ہیں جیسے https, spop, or simap. یہ طریقہ کار پرائیویٹ کلید اور سرٹیفکیٹ کی درخواست بناتی ہے، اور اس کے بعد سرٹیفکیٹ پیدا کرنے کے لئے درخواست سے سائن انگ ھوتی ھے

ہماری ترتیبات کی فائل کو نان اے سی سرٹیفیکیٹس کی تخلیق کے لیے کچھ تعریفوں کی مذید ضرورت ھے۔ فائل کے آخر میں مندرجہ ذیل شامل کریں۔

---Begin---
[ v3_req ]
basicConstraints	= CA:FALSE
subjectKeyIdentifier	= hash

----End----

کمانڈ لائن پر بار بار اسے ڈالنے سے بچنے کے لئے، مندرجہ ذیل لائن درج ذیل سطر میں داخل کریں [req] ممتاز کے بعد سیکشن ـ نام کی لائن ایسے دکھائی دے گی:

---Begin---
distinguished_name	= req_distinguished_name
req_extensions		= v3_req

----End----

اب ہم اپنی پہلی سرٹیفکیٹ کی درخواست کو تخلیق کرنے کے لئے تیار ہیں۔ اس مثال میں، ہم پی او پی سرور کے لیے ایک سرٹیفیکیٹ میل ڈاٹ سیمپل ڈاٹ کام پر بنانے جارہے ہیں۔ لیکن سب کچھ ایسا لگ رہا ھے جیسے ہم سی اے سرٹیفیکیٹ بناتے ہیں۔ لیکن آنے والے تین اشاروں سے مختلف رسپانس حاصل ھوتا ھے۔

تنظیمی یونٹ: اس کا ایک یاد دہانی کون سا سرٹیفکیٹ ہے

ای میل پتہ: پوسٹ ماسٹر

عام نام: سرور ہوسٹ نام

کامن نام لازمی (یا آئی پی ایڈریس لازمی حل کرے)سرور کا نام آپ کے کلائینٹس آپکے ھوسٹ سے رابطہ کے لیے استعمال کریں، ہر بار جب وہ آپ کے گاہکوں سے رابطہ قائم کرتے ہیں تو ان سے پوچھتے ہیں کہ وہ اس سرور کا استعمال کرنا چاہتے ہیں۔ اس اثر سے کلائنٹ سوفٹ وئیر کہہ رہا ھے،، "انتباہ! آپ پوچھتے ہیں میل ڈاٹ سیمپل ڈاٹ کام : جبکہ جواب دینے والی مشین کا سرٹیفیکیٹ smtp.sample.com کے لیے ھے۔ کیا آپ واقعی یہ جاری رکھنا چاہتے ہیں؟

# openssl req -new -nodes -out req.pem -config ./openssl.cnf
...
Organizational Unit Name (department, division) []:Mail Server
Email Address []:postmaster@sample.com
Common Name (hostname, IP, or your name) []:mail.sample.com
...

یہ عمل دو فائلوں کو آؤٹ پٹ کے طور پر پیدا کرتا ہے:
1: key.pem ایک نجی کلید
2: req.pem ایک سرٹیفکیٹ سائن ان کی درخواست

ان فائلوں کو رکھنا چاہئے جب سرٹیفکیٹ آپ ختم ہونے کے بارے میں ہیں تو، ایک نیا سرٹیفکیٹ تخلیق کرنے کو میعادی تاریخ کے ساتھ ھوگی۔ پرائیوئٹ کلید ایس ایس ایل اینکرپشن کے لیے بالکل ضروری ھے۔ جب آپ ان فائلوں کو محفوظ کرتے ہیں، معنی خیز ناموں سے مدد ملے گی؛ مثال کے طور پر mailserver.key.pem mailserver.req.pem. درخواست دوبارہ ختم ہونے کے لئے استعمال کیا جا سکتا ہے. نجی کلیدی ایس ایس ایل خفیہ کاری کے لئے ضرور ضروری ہے. جب آپ ان فائلوں کو بچاتے ہیں تو، معنی ناموں میں مدد ملے گی؛ مثال کے طور پر، اور

اس سرٹیفکیٹ پر سائن انگ کرنے کی درخواست یہ ہے جیسے

-----BEGIN CERTIFICATE REQUEST-----
MIICJDCCAY0CAQAwgagxGzAZBgNVBAoTElRoZSBTYW1wbGUgQ29tcGFueTEUMBIG
A1UECxMLTWFpbCBTZXJ2ZXIxJDAiBgkqhkiG9w0BCQEWFXBvc3RtYXN0ZXJAc2Ft
cGxlLmNvbTETMBEGA1UEBxMKTWV0cm9wb2xpczERMA8GA1UECBMITmV3IFlvcmsx
CzAJBgNVBAYTAlVTMRgwFgYDVQQDEw9tYWlsLnNhbXBsZS5jb20wgZ8wDQYJKoZI
hvcNAQEBBQADgY0AMIGJAoGBAPJhc++WxcBaoDbJpzFbDg42NcOz/ELVFMU4FlPa
yUzUO+xXkdFRMPKo54d4Pf1w575Jhlu9lE+kJ8QN2st6JFySbc9QjPwVwl9D2+I3
SSf2kVTu+2Ur5izCPbVAfU0rPZxxK8ELoOkA1uwwjFz6EFuVvnHwlguonWKDtmYW
u7KTAgMBAAGgOzA5BgkqhkiG9w0BCQ4xLDAqMAkGA1UdEwQCMAAwHQYDVR0OBBYE
FLWaQsUVIQzWr58HtDinH1JfeCheMA0GCSqGSIb3DQEBBAUAA4GBAAbe0jrGEQ3i
tyVfy5Lg4/f69rKvDGs+uhZJ9ZRx7Dl92Qq2osE7XrLB1bANmcoEv/ORLZOjWZEY
NjMvuz60O7R8GKBrvb/YhAwWhIIt2LJqPkpAEWS0kY0AkoQcfZ7h6oC35+eJ7okg
Uu3WuE57RgcNt7/ftr0sG1jUyRwMLvhv
-----END CERTIFICATE REQUEST-----

ہم مواد کو اس بات کا یقین کرنے کے لئے دیکھ سکتے ہیں کہ ہماری درخواست درست ہے:

# openssl req -in req.pem -text -verify -noout

واپس اوپر جایئں

سرٹیفکیٹ سائن ان

اب ہمیں ترتیبات فائل کا حصہ شامل کرنا ہوگا جو بطورسرٹیفکیٹ اتھارٹی کے ساتھ معاملات ہونے سے متعلق ہے۔ یہ سیکشن مختلف ٹکڑوں کی شناخت ھوگا، جیسے ڈیٹا بیس، سی اے سرٹیفیکیٹ، اور پرائیویٹ کلید۔ یہ کچھ بنیادی ڈیفالٹ اقدار بھی فراہم کرتا ھے۔ مندرجہ ذیل کو اوپن ایس ایس ایل ڈاٹ سی این ایف میں بالکل [ریق ] سیکشن سے پہلے شامل کریں۔

---Begin---
[ ca ]
default_ca		= CA_default

[ CA_default ]
serial			= $dir/serial
database		= $dir/index.txt
new_certs_dir		= $dir/newcerts
certificate		= $dir/cacert.pem
private_key		= $dir/private/cakey.pem
default_days		= 365
default_md		= sha512
preserve		= no
email_in_dn		= no
nameopt			= default_ca
certopt			= default_ca
policy			= policy_match
unique_subject		= no

[ policy_match ]
countryName		= match
stateOrProvinceName	= match
organizationName	= match
organizationalUnitName	= optional
commonName		= supplied
emailAddress		= optional

----End----

پچھلے مرحلے میں ہم نے درخواست پر سائن کرنے کے لئے، مندرجہ ذیل پر عملدرآمد اور اشارے پر جواب دیا۔ یہ نوٹ کریں کہ آپ پہلے سے منتخب پی ای ایم پاس فریس کے لئے پوچھا جاتا ہے۔

# openssl ca -out cert.pem -config ./openssl.cnf -infiles req.pem
Using configuration from ./openssl.cnf
Enter PEM pass phrase:demo
Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows
organizationName      :PRINTABLE:'The Sample Company'
organizationalUnitName:PRINTABLE:'Mail Server'
emailAddress          :IA5STRING:'postmaster@sample.com'
localityName          :PRINTABLE:'Metropolis'
stateOrProvinceName   :PRINTABLE:'New York'
countryName           :PRINTABLE:'US'
commonName            :PRINTABLE:'mail.sample.com'
Certificate is to be certified until Dec  8 04:37:38 2002 GMT (365 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

یہ عمل سی اے ڈیٹا بیس کو اپ ڈیٹ کرتا ہے، اور آوٹ پٹ کے طور پر دو فائلوں کو پیدا کرتا ہے:

1: میں ایک سرٹیفکیٹ cert.pem
2: کی ایک سرٹیفیکیٹ میں کاپیnewcerts/.pem
پھر دوبارہ، آپ سرٹیفکیٹ کا معائنہ کر سکتے ہیں:
# openssl x509 -in cert.pem -noout -text -purpose | more

اس سرٹیفکیٹ میں ایک ہی فائل میں ان کوڈڈ ورژن اور ایک انسانی پڑھنے والا ورژن ہے. آپ انسانی طور پر پڑھنے والے حصے کو مندرجہ ذیل طور پر بند کر سکتے ہیں

# mv cert.pem tmp.pem
# openssl x509 -in tmp.pem -out cert.pem
واپس اوپر جایئں

سرٹیفکیٹ اور کلید انسٹال کرنا

یہ درخواست پر منحصر ہے۔ کچھ اسی فائل میں کلید اور سرٹیفکیٹ چاہتے ہیں، اور دوسروں کو ان سے علیحدہ کرنا چاہیے، انکے ساتھ آسانی سے ملا کر کیا جارہا ھے:

# cat key.pem cert.pem >key-cert.pem
اس مرحلے کے بعد، آپ کے پاس تین تناسب قابل انتخاب اجزاء ہیں: 1: ایک پرائیویٹ کلید key.pem
2: ایک سرٹیفکیٹ cert.pem
3: میں ایک مشترکہ پرائیویٹ کلید اور سرٹیفکیٹ key-cert.pem

آپ کی درخواست اور نظام کے لئے ہدایات کی طرف سے مخصوص مقامات میں مناسب فائلوں کاپی کریں. ۔ ایپلیکیشنز کو دوبارہ شروع کریں، اور آپ اپنے نئے سرٹیفکیٹ کے ساتھ آپریشن میں ہیں.

اپاچی

اپاچی کلید اور سرٹیفکیٹ کے لئے علیحدہ ڈائریکٹیو ترتیبات دیتا ہے، لہذا ہم ہر ایک کو اپنی فائل میں رکھیں : ان فائلوں کو دستاویز روٹ سب ٹری کے باہر رکھا جانا چاہئے، لہذا مناسب ڈائرکٹری کی ساخت ہو سکتی ہے

FileComment
/home/httpd/htmlApache DocumentRoot
/home/httpd/sslSSL-related files
/home/httpd/ssl/cert.pemSite certificate
/home/httpd/ssl/key.pemSite private key

کی سائٹ کے لیے ہدایات کے اندر (جو کورس کو پورٹ ۴۴۳ پر ہونا چاہئے)، ان ہدایات کو شامل کریں جن میں ان فائلوں کی طرف اشارہ ہے:


   ServerName mail.sample.com
   DocumentRoot /home/httpd/html
   ... other directives for this site ...
   SSLEngine on
   SSLLog /var/log/ssl_engine_log
   SSLCertificateFile /home/httpd/ssl/cert.pem
   SSLCertificateKeyFile /home/httpd/ssl/key.pem


سٹونل

اسٹونل ایک ایس ایس ایل کی ریپر کے لیے نارمل نان سیکیور سروسز کے طور پراستعمال کیا جاتا ہے جیسا کہ آئی ایم اے پی اور پی او پی ۔. ۔ یہ دلائل (دیگر چیزیں) کے طور پر انجام دینے کی خدمت قبول کرتی ہیں، اور سرٹیفکیٹ اور پرائیویٹ کلید کے مقام کلیدی اور سرٹیفکیٹ اسی فائل میں فراہم کی جاتی ہیں
یہ کہیں جا سکتا ہے، لیکن ایک اچھا مقام ہو سکتا ہے /etc/ssl/certs. مندرجہ ذیل اسٹونل کمانڈ لائن پر اس کی وضاحت کریں:
stunnel -p /etc/ssl/certs/key-cert.pem 

واپس اوپر جایئں

سی اے سرٹیفیکیٹ تقسیم کرنا

آخر میں، وہ قدم ہے جو گاہکوں کو ناقابل یقین سرٹیفکیٹ کے بارے میں شکایت کرنے سے روکتا ہے cacert.pem. کسی بھی شخص کو جو اپنے محفوظ سرور استعمال کرنے کے لئے جا رہا ہے کو بھیجیں لہذا یہ براؤزر، میل کلائنٹ وغیرہ میں بطور روٹ سرٹیفیکیٹ کے انسٹال کیا جاسکتا ھے۔
واپس اوپر جایئں

تجدید سرٹیفکیٹس

آپ کے سرٹیفکیٹ سلسلہ دو طریقوں میں سرٹیفکیٹ ختم کرنے کی وجہ سے توڑ سکتا ہے:

1: آپ کے روٹ سرٹیفکیٹ کے ساتھ سائن کردہ سرٹیفکیٹ ختم ہوگئے ہیں
2: آپ کا روٹ سرٹیفکیٹ ختم ہوگیا ہے
دوسرا کیس میں، آپ کو کچھ کام کرنا ہے.
ایک نیا روٹ سی اے کا سرٹیفکیٹ تخلیق اور تقسیم کرنا لازمی ہے، اور پھر آپ کے موجودہ سرٹیفکیٹ کو دوبارہ تیار یا دوبارہ سائن کیا جانا چاہئے۔.

پہلی صورت میں، آپ کے دو اختیارات ہیں۔.
آپ یا تو نئے سرٹیفکیٹ میں سائن کرنے کی درخواستوں کو تشکیل دے سکتے ہیں اور ان کے اوپر بیان کردہ سائن ان کرسکتے ہیں، یا (اگر آپ نے انہیں رکھا ہے تو) آپ ان کو اصل درخواستوں میں دوبارہ سائن کر سکتے ہیں کسی بھی صورت میں، پرانے سرٹیفکیٹ کو منسوخ کرنا لازمی ہے، اور پھر نئے سرٹیفکیٹ پہلے ہی بیان کیے گئے اپنے محفوظ ایپلی کیشنز میں سائن کیے اور انسٹال کئے جاتے ہیں۔
آپ دو سرٹیفکیٹس کو ایک جیسے کامن نام کے ساتھ جاری نہیں کر سکتے ہیں، لہذا توقع شدہ سرٹیفکیٹ کو منسوخ کرنا لازمی ہے۔ سرٹیفکیٹ نورسرٹس ڈائریکٹری میں ہے۔

آپ انڈیکس اس فائل نام کو براؤزنگ انڈیکس ٹیکسٹ یا اس میں کامن نام(سی این) سے تلاش کر کے متعین کرسکتے ہیں ۔ فائل نام کا انڈیکس پلس اور توسیع "پی ای ایم " ہے، مثال کے طور پر "02.PEM” ایک سرٹیفکیٹ کو منسوخ کرنےسے:

# openssl ca -revoke newcerts/02.pem -config ./openssl.cnf
Using configuration from ./openssl.cnf
Enter PEM pass phrase: demo
Revoking Certificate 02.
Data Base Updated

اب یہ سرٹیفکیٹ رد کر دیا گیا ہے، آپ اصل درخواست دوبارہ سائن کرسکتے ہیں، یا اوپر بیان کردہ ایک نئی تخلیق اور سائن کرسکتے ہیں

واپس اوپر جایئں

تجارتی لحاظ سے سائن سرٹیفکیٹ حاصل کرنا

عمل بنیادی طور پر وہی ہے جیسا کہ صرف ایک ہی مرتبہ ظاہر کیا ہے، لیکن اس میں سی اے زیادہ تر کرتا ہے. آپ کو سرٹیفکیٹ سائن ان کی درخواست پیدا کرنے کی ضرورت ہے جیسا کہ اوپر دکھایا گیا ہے، اور پھر اسے سائن ان کو جمع کروانے کے لیے آپ کو انسٹالیشن کے لئے ایک سائن انگ سرٹیفکیٹ ملے گا۔

یہ سرٹیفکیٹ خود بخود اپنے کلائنٹ کے براؤزر کے ذریعہ پر اعتماد حاصل کرے گی جیساکہ براؤزر تجارتی سی اے سرٹیفکیٹ میں بنایا گیا ہے۔ اس میں کچھ بھی تقسیم کرنے کی کوئی ضرورت نہیں ہے۔

یہاں بیان کردہ ترتیب اس مقصد کے لئے ناکافی ہوسکتا ہے، کیونکہ اس درخواست میں بہت زیادہ کچھ بھی ہوسکتا ہے۔. مختلف سرٹیفکیٹ حکام سرٹیفکیٹ پرسائن کرنے کی درخواست میں مختلف خصوصیات کی ضرورت ہوتی ہے، ہم میں سے کوئی بھی یہاں نہیں گیا یہ اضافی مواد اس دستاویز کے موجودہ گنجائش سے باہر ہے

واپس اوپر جایئں

آپ کا سی اے سرٹیفکیٹ شائع کرنا

آپ اپنی ویب سائٹ پر ڈاؤن لوڈ کیلئے سرٹیفکیٹ پوسٹ کرسکتے ہیں. اگر آپ ایسا کرتے ہیں تو، آپ کو ایک سرٹیفکیٹ ریوکیشن کی فہرست (سی آر ایل)، اور اس کے سیریل نمبر دیئے گئے سرٹیفکیٹ کی نمائش کا ایک ذریعہ بھی ہونا چاہئے. یہ اس دستاویز کے موجودہ گنجائش سے باہر ہے.

اپاچی آپ کو اپنے ایم آئی ایم ای قسم کی وضاحت کرتے ہیں تو براؤزرز کو تسلیم کرنے والے ایک فارم میں اپنے سرٹیفکیٹ کو سروو کریں گے مثال کے طور پر، آپ ڈاؤن لوڈ سرٹیفکیٹس کے لئے فائل کا نام ایکسٹینشن ’’ سی آر ٹی ‘‘ کا استعمال کرسکتے ہیں، اور آپ کو آپ کے اپاچی ترتیبات کے عمومی حصے میں ڈالیں۔

AddType application/x-x509-ca-cert .crt

اب آپ ایک لنک کے ساتھ ڈاؤن لوڈ کرنے کے لئے سرٹیفکیٹ کو پوسٹ کرسکتے ہیں جیسے Our root Certificate ہمارے روٹ سرٹیفکیٹ اور جب لنک کی پیروی کی جائے تو وزیٹر کے براؤزرسرٹیفیکیٹ کو انسٹال کرنے کی پیشکش کرگا۔

مندرجہ ذیل طریقے سے سی آر ایل کو پیدا کیا جا سکتا ہے:

# openssl ca -gencrl -crldays 31 -config ./openssl.cnf -out rootca.crl

واپس اوپر جایئں

خلاصہ

اب آپ کو اپنی طرف سے سرٹیفکیٹ تخلیق اور سائن ان کرنے کے لئے کافی معلومات ہے. یہ کافی طویل دستاویز ہے جبکہ، طریقہ کار آسانی سے خلاصہ کیا جا سکتا ہے.

ایک دفعہ سیٹ اپ بنائیں

سیٹ اپ کریں، اور روٹ سی اے سرٹیفکیٹ بنائیں.

کمانڈ

# mkdir CA
# cd CA
# mkdir newcerts private
# chmod 700 newcerts private
# echo '01' >serial
# touch index.txt
# (IMPORTANT: Install and edit the configuration file shown below.)
# openssl req -new -x509 -extensions v3_ca -keyout private/cakey.pem \
-out cacert.pem -days 3650 -config ./openssl.cnf

آؤٹ پٹ

FilePurpose
key.pemPrivate key
req.pemCertificate signing request
cert.pemCertificate
key-cert.pemCombined private key and certificate

انسٹال key.pem اور cert.pem کریں یا صرف key-cert.pem اپنے سرور کی ضروریات کی مطابق
cacert.pem اپنے گاہکوں کو تقسیم کریں۔

سرٹیفکیٹ کے مطابق

سرٹیفکیٹ سائن انگ کرنے کی درخواستیں بنائیں اور انھیں سائن کریں، کامن نام اور تنظیمی یونٹ کیلئے مناسب اقدار کی فراہمی۔

کمانڈز

# openssl req -new -nodes -out req.pem -config ./openssl.cnf
# openssl ca -out cert.pem -config ./openssl.cnf -infiles req.pem
# cat key.pem cert.pem >key-cert.pem

آؤٹ پٹ

# openssl req -new -nodes -out req.pem -config ./openssl.cnf
# openssl ca -out cert.pem -config ./openssl.cnf -infiles req.pem
# cat key.pem cert.pem >key-cert.pem

انسٹال key.pem اور cert.pem کریں یا صرف key-cert.pem اپنے سرور کی ضروریات کی مطابق

سرٹیفکیٹ کے مطابق - تجدید

متوقع سرٹیفکیٹ کو منسوخ کریں، اور اصل درخواست دوبارہ سائن کریں

کمانڈز

# openssl ca -revoke newcerts/.pem -config ./openssl.cnf
# openssl ca -out cert.pem -config ./openssl.cnf -infiles req.pem

ری نیو سرٹیفکیٹ کو انسٹال کریں اسی طور پر جس طرح ایک نیا سرٹیفیکیٹ ھے۔
واپس اوپر جایئں

ترتیبات فائل

لیے دستیاب ھے ڈاؤن لوڈ کے یہ فائل
---Begin---
#
# OpenSSL configuration file.
#

# Establish working directory.

dir			= .

[ ca ]
default_ca		= CA_default

[ CA_default ]
serial			= $dir/serial
database		= $dir/index.txt
new_certs_dir		= $dir/newcerts
certificate		= $dir/cacert.pem
private_key		= $dir/private/cakey.pem
default_days		= 365
default_md		= sha512
preserve		= no
email_in_dn		= no
nameopt			= default_ca
certopt			= default_ca
policy			= policy_match
unique_subject		= no

[ policy_match ]
countryName		= match
stateOrProvinceName	= match
organizationName	= match
organizationalUnitName	= optional
commonName		= supplied
emailAddress		= optional

[ req ]
default_bits		= 4096			# Size of keys
default_keyfile		= key.pem		# name of generated keys
default_md		= sha512		# message digest algorithm
string_mask		= nombstr		# permitted characters
distinguished_name	= req_distinguished_name
req_extensions		= v3_req

[ req_distinguished_name ]
# Variable name		  Prompt string
#----------------------	  ----------------------------------
0.organizationName	= Organization Name (company)
organizationalUnitName	= Organizational Unit Name (department, division)
emailAddress		= Email Address
emailAddress_max	= 40
localityName		= Locality Name (city, district)
stateOrProvinceName	= State or Province Name (full name)
countryName		= Country Name (2 letter code)
countryName_min		= 2
countryName_max		= 2
commonName		= Common Name (hostname, IP, or your name)
commonName_max		= 64

# Default values for the above, for consistency and less typing.
# Variable name			  Value
#------------------------------	  ------------------------------
0.organizationName_default	= The Sample Company
localityName_default		= Metropolis
stateOrProvinceName_default	= New York
countryName_default		= US

[ v3_ca ]
basicConstraints	= CA:TRUE
subjectKeyIdentifier	= hash
authorityKeyIdentifier	= keyid:always,issuer:always

[ v3_req ]
basicConstraints	= CA:FALSE
subjectKeyIdentifier	= hash

----End----
واپس اوپر جایئں

حوالہ جات

مندرجہ ذیل سائٹس پر مزید معلومات دستیاب ہے نئی ونڈو میں اوپن کریں
اوپن ایس ایس ایل ہوم پیج
اوپن ایس ایس ایل دستاویزی
اوپن ایس ایس ایل سوالات
اوپن ایس ایس ایل کے ساتھ نک برچ کے سرٹیفکیٹ مینجمنٹ اور تنصیب
فرینک مارٹن کے ایس ایس ایل سرٹیفکیٹ HOWTO

واپس اوپر جایئں

مارکس ریڈیوو نے تحقیق کی اور لکھا۔

کسی بھی مقصد کے لئے اس دستاویز کو استعمال کرنے کی اجازت دی گئی ہے اس کے ذریعہ اس کو فراہم کی جاسکتی ہے، جو کہ کاپی رائٹ کی معلومات اور اس کے اعلان کو برقرار رکھا جائے.

اس معلومات کے استعمال سے پیدا ہونے والے کسی بھی نتائج کا مصنف کوئی ذمہ داری قبول نہیں کرتےہیں۔.
ترجمہ بحوالہ
http://www.eclectica.ca/howto/ssl-cert-howto.php