एसएसएल (SSL - Secure Sockets Layer) लाई वेब सर्भर (Web Server) र ब्राउजर (Browser) बीच ईन्क्रिप्टेड लिंक (Encrypted Link) हरू स्थापना गर्नका लागि प्रयोग गरिने एक मानक सुरक्षा प्रोटोकल (Standard Security Protocol) को रूपमा परिभाषित गर्न सकिन्छ, ताकी प्रयोगकर्ताको डाटा गोपनीयता (Data Privacy) को सम्मान होस् र बीचमा कसैले पनि जासुसी गर्न नसकोस्। विशेष गरी स्नोडेनको खुलासा (Snowden revelation) पछिको युगमा यो धेरै महत्त्वपूर्ण छ।

ओपनएसएसएल (OpenSSL) टूल सेटलाई एसएसएल सर्टिफिकेट (SSL Certificate) सँग सम्बन्धित लगभग हरेक कार्य गर्नका लागि प्रयोग गर्न सकिन्छ। यस निर्देशिकाले सर्टिफिकेट साइनिङ रिक्वेस्ट (Certificate Signing Request - CSR) सिर्जना गर्ने, सेल्फ-साइन सर्टिफिकेट (Self-signed Certificate) उत्पन्न गर्ने, र अन्तमा आवश्यक ढाँचामा एसएसएल सर्टिफिकेट रूपान्तरण गर्ने तरिका परिभाषित गर्दछ।

सर्टिफिकेट साइनिङ रिक्वेस्ट (Certificate Signing Request - CSR) Link to heading

कुनै प्रमाणित सीए (CA - Certificate Authority) बाट एसएसएल सर्टिफिकेट (SSL Certificate) प्राप्त गर्नका लागि तपाईंले पहिले सर्टिफिकेट साइनिङ रिक्वेस्ट (CSR) उत्पन्न गर्नुपर्छ।

CSR मा निम्न जानकारीहरू हुनेछन्:

  • Country Name (देशको नाम - २ अक्षरको कोड)
  • State or Province Name (राज्य वा प्रदेशको नाम - पूरा नाम)
  • Locality Name (स्थानको नाम - शहर)
  • Organization Name (संस्थाको नाम - कम्पनी)
  • Organizational Unit Name (सांगठनिक एकाइको नाम - शाखा)
  • Common Name (सामान्य नाम - Fully Qualified Domain Name)
  • Email Address (इमेल ठेगाना)

Fully Qualified Domain Name (FQDN) ले विशिष्ट नाम (Distinguished Name) को रूपमा काम गर्दछ र यो संस्थाले आवश्यक निकायबाट खरिद गरेको हुनुपर्छ। यसमा *.maharjansujit.com.np जस्तै वाइल्डकार्ड (Wildcard) समावेश हुन सक्छ ताकि maharjansujit.com.np को सबै सबडोमेन (Subdomain) हरूले एउटै एसएसएल की (SSL Key) प्रयोग गर्न सकून्।

CSR उत्पन्न गर्न निम्न कमाण्ड प्रयोग गरिन्छ:

openssl req -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr

जहाँ domain.key २०४८-बिटको प्राइभेट की (2048-bit Private Key) हो र domain.csr सर्टिफिकेट साइनिङ रिक्वेस्ट (Certificate Signing Request) हो।

उदाहरणीय अन्तरक्रिया (Example interaction encountered):

Country Name (2 letter code) [AU]:NP
State or Province Name (full name) [Some-State]:State 3
Locality Name (eg, city) []:Kathmandu
Organization Name (eg, company) [Internet Widgits Pty Ltd]:maharjansujit
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:maharjansujit.com.np
Email Address []:mail@maharjansujit.com.np 

अवस्थित सर्टिफिकेट र प्राइभेट की बाट CSR उत्पन्न गर्ने (Generating a CSR from an Existing Certificate and Private Key) Link to heading

यदि तपाईंसँग पहिले नै प्राइभेट सर्टिफिकेट छ भने तपाईंले निम्न कमाण्ड प्रयोग गर्न सक्नुहुन्छ:

openssl x509 -in domain.crt -signkey domain.key -x509toreq -out domain.csr

तपाईंले domain.csr फाइल आवश्यक निकाय (Certificate Authority) लाई पठाउनुहुनेछ ताकि उनीहरूले दिइएको की (Key) लाई साइन (Sign) गर्न सकून्।

सेल्फ-साइन सर्टिफिकेट उत्पन्न गर्ने (Generating self-signed Certificate) Link to heading

सेल्फ-साइन की (Self-signed key) उत्पन्न गर्न तपाईंले निम्न कमाण्ड प्रयोग गर्न सक्नुहुन्छ:

openssl req -newkey rsa:2048 -nodes -keyout domain.key -x509 -days 365 -out domain.crt

जहाँ domain.key प्राइभेट की (Private Key) हो, र domain.crt पब्लिक की (Public Key) हो।

अवस्थित प्राइभेट की बाट सेल्फ-साइन सर्टिफिकेट उत्पन्न गर्ने Link to heading

openssl req -key domain.key -new -x509 -days 365 -out domain.crt

जहाँ domain.key अवस्थित प्राइभेट की हो र domain.crt सेल्फ-साइन सर्टिफिकेट (Self-signed certificate) हो।

अवस्थित प्राइभेट की र CSR बाट सेल्फ-साइन सर्टिफिकेट उत्पन्न गर्ने Link to heading

openssl x509 -signkey domain.key -in domain.csr -req -days 365 -out domain.crt

सर्टिफिकेटहरू हेर्ने (Viewing Certificates) Link to heading

उत्पन्न गरिएका ओपनएसएसएल (OpenSSL) फाइलहरू पीइएम (PEM - Privacy Enhanced Mail) ढाँचामा इन्कोड गरिएका हुन्छन्, जुन मानवले सजिलै पढ्न सक्दैनन्।

CSR प्रविष्टिहरू हेर्ने (View CSR Entries) Link to heading

openssl req -text -nout --verify -in domain.csr

जहाँ domain.csr तपाईंले पढ्न चाहनुभएको अवस्थित CSR फाइल हो।

सर्टिफिकेट प्रविष्टिहरू हेर्ने (View Certificate Entries) Link to heading

openssl verify -verbose -CAFile ca.crt domain.crt

सर्टिफिकेट ढाँचाहरू रूपान्तरण गर्ने (Convert Certificate Formats) Link to heading

माथिका सबै कमाण्डहरूले X.509 सर्टिफिकेटहरू उत्पन्न गर्छन् जुन ASCII PEM इन्कोड गरिएका हुन्छन्। यदि तपाईंलाई सर्टिफिकेट अर्को ढाँचामा आवश्यक छ भने तपाईंले निम्न कमाण्डहरू प्रयोग गरेर रूपान्तरण गर्न सक्नुहुन्छ।

PEM बाट DER मा (PEM to DER) Link to heading

openssl x509 -in domain.crt -outform der -out domain.der

जहाँ domain.crt PEM ढाँचाको सर्टिफिकेट फाइल हो र domain.der DER ढाँचाको फाइल हो।

DER बाट PEM मा (DER to PEM) Link to heading

openssl x509 -inform der -in domain.der -out domain.crt

जहाँ domain.crt PEM ढाँचाको सर्टिफिकेट फाइल हो र domain.der DER ढाँचाको फाइल हो।