मैं लिनक्स सर्वर पर अपाचे के साथ उपयोग के लिए एक पीएफएक्स प्रमाणपत्र फ़ाइल कैसे बदल सकता हूं?


110

मैं लिनक्स सर्वर पर अपाचे के साथ उपयोग के लिए एक पीएफएक्स प्रमाणपत्र फ़ाइल कैसे बदल सकता हूं?

मैंने विंडोज सर्टिफिकेट सर्विसेज से PFX बनाया। PFX में संपूर्ण प्रमाणपत्र श्रृंखला शामिल है। (जो सिर्फ एक मूल और मुख्य प्रमाणपत्र है, कोई मध्यवर्ती नहीं है।)

मुझे, बुद्धिमानों को लीड करो।

जवाबों:


194

OpenSSL के साथ आप अगली कमांड के साथ pfx को अपाचे संगत प्रारूप में बदल सकते हैं:

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
openssl pkcs12 -in domain.pfx -nocerts -nodes  -out domain.key   

पहली कमांड सार्वजनिक कुंजी को निकालती है domain.cer
दूसरी कमांड निजी कुंजी निकालती है domain.key

अपाचे कॉन्फ़िगरेशन फ़ाइल को इसके साथ अपडेट करें:

<VirtualHost 192.168.0.1:443>
 ...
 SSLEngine on
 SSLCertificateFile /path/to/domain.cer
 SSLCertificateKeyFile /path/to/domain.key
 ...
</VirtualHost>

यह सर्टिफिकेट अथॉरिटी फाइल बनाने के लिए कमांड को मिस कर रहा है। नीचे दिया गया उत्तर अधिक पूर्ण है।
19

100

इसके अतिरिक्त

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
openssl pkcs12 -in domain.pfx -nocerts -nodes  -out domain.key

मैंने प्रमाणपत्र प्राधिकरण (CA) प्रमाणपत्र भी तैयार किया:

openssl pkcs12 -in domain.pfx -out domain-ca.crt -nodes -nokeys -cacerts

और इसे Apache config फाइल में शामिल किया:

<VirtualHost 192.168.0.1:443>
 ...
 SSLEngine on
 SSLCertificateFile /path/to/domain.cer
 SSLCertificateKeyFile /path/to/domain.key
 SSLCACertificateFile /path/to/domain-ca.crt
 ...
</VirtualHost>

8
नोट: यदि ca प्रमाणपत्र खाली होगा - कृपया इस लाइन को config फाइल में शामिल न करें।
एंडरन

@ और जब मैं CA प्रमाण पत्र बनाने के लिए तीसरी कमांड का उपयोग करता हूं तो परिणाम एक खाली crt फ़ाइल है। मैं दोनों serverSSL pfx फ़ाइल और इनपुट के लिए rootCA pfx फ़ाइल का उपयोग करने की कोशिश की। (bitnami wamp) अंतिम परिणाम यह है कि फ़ायरफ़ॉक्स मुझे एक The certificate is not trusted because the issuer certificate is unknown SEC_ERROR_UNKNOWN_ISSUERत्रुटि देता है ।
खार्गोश

@khargoosh जैसा कि मैंने टिप्पणी में बताया है: यदि यह खाली है - बस इस लाइन का उपयोग / शामिल न करें। मेरा भी यही हाल था।
एंड्रॉन

31

अपाचे के साथ काम करने के लिए, हमें एक अतिरिक्त कदम की आवश्यकता थी।

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
openssl pkcs12 -in domain.pfx -nocerts -nodes  -out domain_encrypted.key
openssl rsa -in domain_encrypted.key -out domain.key

अंतिम आदेश अपाचे के साथ उपयोग के लिए कुंजी को डिक्रिप्ट करता है। Domain.key फ़ाइल इस तरह दिखनी चाहिए:

-----BEGIN RSA PRIVATE KEY-----
MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
-----END RSA PRIVATE KEY-----

अच्छा! Bitnami या अन्य को CA crt की आवश्यकता के लिए, Andron से CA crt को शामिल करने के उत्तर को देखें। माइकल फेरेन्ते के नाम में सर्वर- ca.crt (एंडरॉन के उत्तर में domain-ca.crt के स्थान पर), और server.crt (domain.cer के स्थान पर), और server.key (domain.key के स्थान पर) नामकरण का उपयोग करें यहाँ जवाब दो।
ओल्डग्रेग

3

आसपास कुछ टूलींग ले गया, लेकिन यह वही है जो मैंने समाप्त किया है।

IIS7 पर प्रमाणपत्र बनाया और स्थापित किया। IIS से PFX के रूप में निर्यात किया गया

Pkcs12 में कनवर्ट करें

openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

नोट: PFX को PEM प्रारूप में कनवर्ट करते समय, Opensl सभी प्रमाणपत्रों और निजी कुंजी को एक फ़ाइल में डाल देगा। आपको पाठ संपादक में फ़ाइल खोलने और प्रत्येक प्रमाणपत्र और निजी कुंजी (BEGIN / END कथनों सहित) को अपनी स्वयं की व्यक्तिगत पाठ फ़ाइल में कॉपी करने और क्रमशः प्रमाण पत्र ,cer, CAcert.cer, privateKey.key के रूप में सहेजने की आवश्यकता होगी।

-----BEGIN PRIVATE KEY-----
Saved as certificate.key
-----END PRIVATE KEY-----

-----BEGIN CERTIFICATE-----
Saved as certificate.crt
-----END CERTIFICATE-----

Apache vhost w / Webmin में जोड़ा गया।


यदि आप चाहते हैं कि निजी कुंजी और सीट्स एक ही फ़ाइल में समाप्त -nokeysन हों , तो (निजी कुंजी निकालने के लिए नहीं) का उपयोग करें और -clcerts(केवल प्रमाण पत्र निकालने के लिए)। ठीक यही बात मतेज ने कही।
ब्रूनो

0

SSLSHopper के पास विभिन्न सर्वरों के बीच जाने के बारे में कुछ बहुत गहन लेख हैं।

http://www.sslshopper.com/how-to-move-or-copy-an-ssl-certificate-from-one-server-to-another.html

बस इस पृष्ठ के नीचे प्रासंगिक लिंक चुनें।

नोट: उनके पास एक ऑनलाइन कनवर्टर है जो उन्हें आपकी निजी कुंजी तक पहुंच प्रदान करता है। उन पर शायद भरोसा किया जा सकता है लेकिन बेहतर होगा कि ओपेननसेल कमांड (इस साइट पर भी दिखाया गया है) का इस्तेमाल निजी कुंजी को अपनी मशीन पर रखने के लिए करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.