---
title: प्रमाणपत्र जारी करना और तैनाती
description: "Technical Tutorial Ubuntu 24 + Apache + WordPress **PEM Format SSL Certificate** इम्प्लीमेंटेशन गाइड Certificate Authority (CA) के management console से जारी किए गए PEM format SSL certificates को Ubuntu 24 + Apache + WordPress environments में लागू करने के…"
url: "https://bestnetllc.co.jp/hi/docs/%e0%a4%aa%e0%a5%8d%e0%a4%b0%e0%a4%ae%e0%a4%be%e0%a4%a3%e0%a4%aa%e0%a4%a4%e0%a5%8d%e0%a4%b0-%e0%a4%9c%e0%a4%be%e0%a4%b0%e0%a5%80-%e0%a4%95%e0%a4%b0%e0%a4%a8%e0%a4%be-%e0%a4%94%e0%a4%b0-%e0%a4%a4/"
updated: "2026-06-09"
category: SSL प्रमाणपत्र
---

# प्रमाणपत्र जारी करना और तैनाती

Technical Tutorial

Ubuntu 24 + Apache + WordPress
**PEM Format SSL Certificate** इम्प्लीमेंटेशन गाइड

Certificate Authority (CA) के management console से जारी किए गए PEM format SSL certificates को
Ubuntu 24 + Apache + WordPress environments में लागू करने के लिए एक सामान्य ट्यूटोरियल।

Ubuntu 24
Apache
WordPress
PEM SSL

## अस्वीकरण (Disclaimer)

यह लेख एक तकनीकी ट्यूटोरियल है जो Ubuntu 24 + Apache + WordPress environments में SSL certificates (PEM format) लागू करने की सामान्य प्रक्रियाएँ समझाता है।

सामग्री लेखन के समय की जानकारी पर आधारित है, लेकिन ऑपरेशनल प्रक्रियाएँ और configuration के तरीके विशिष्ट environment, configuration, certificate के प्रकार, CA की specifications, middleware के versions और अन्य कारकों के आधार पर भिन्न हो सकते हैं।

## अवलोकन

यह लेख **PEM format SSL certificates**
(वह प्रकार जो CA management console में एक text box में दिखाई देता है) को
**Ubuntu 24 + Apache + WordPress** साइटों में लागू करने के लिए एक सामान्य ट्यूटोरियल है।

चाहे certificate EV / OV / DV हो, **server पर deployment की मूल प्रक्रियाएँ एक जैसी ही हैं**।

## पूर्व-आवश्यकताएँ

- OS: Ubuntu 24 (root या sudo privileges के साथ)
- Web: Apache (`apache2`) चल रहा है
- CMS: WordPress Apache के अंतर्गत चल रहा है
- Certificate: CA से **Server Certificate** जारी किया जा चुका है
- Intermediate Certificate: CA से **Intermediate Certificate (CA Bundle)** उपलब्ध है
- महत्वपूर्ण: CSR जनरेट करते समय बनाई गई **Private Key** आपके पास मौजूद है (खो जाने पर re-issuance आवश्यक है)

## CA Console में दिखने वाला Certificate Format (सैंपल डिस्प्ले)

CA management console में, निम्न block (PEM) एक text box में दिखाई दे सकता है। **इस block को शुरुआत से अंत तक copy करें** और server पर save करें।

```text
-----BEGIN CERTIFICATE-----
(long string of alphanumeric characters)
-----END CERTIFICATE-----
```

**सावधानी**

- Copy करते समय `BEGIN/END` वाली लाइनें भी शामिल करें।
- Line breaks बिगड़ जाने पर भी configuration काम कर जाएगा, लेकिन सबसे सुरक्षित यही है कि **जैसा दिखाया गया है ठीक वैसा ही paste करें**।
- **Private Key (BEGIN PRIVATE KEY) paste न करें**।

## इम्प्लीमेंटेशन का समग्र फ्लो

1. Certificate फ़ाइलों को निर्धारित स्थान पर save करें
2. Intermediate certificate (chain) तैयार करें
3. Fullchain बनाएँ (server certificate + intermediate)
4. सत्यापित करें कि private key और certificate मेल खाते हैं
5. Apache HTTPS VirtualHost configure करें (80 → 443 redirect सहित)
6. Apache reload करें और WordPress URL / mixed content तैयार करें
7. ऑपरेशन सत्यापित करें (chain, redirect, certificate जानकारी)

## Step 1Certificate फ़ाइल का प्लेसमेंट (Server Certificate)

एक सामान्य Ubuntu placement उदाहरण (अपनी ऑपरेशनल पॉलिसी के अनुसार बदलें)।

### Save लोकेशन (उदाहरण)

- Private Key (मौजूदा): `/etc/ssl/private/example.com.key`
- Server Certificate: `/etc/ssl/certs/example.com.crt`
- Intermediate Certificate: `/etc/ssl/certs/intermediate-ca.pem`
- Fullchain: `/etc/ssl/certs/example.com.fullchain.pem`

### Directory बनाना और Permissions

```bash
sudo mkdir -p /etc/ssl/private /etc/ssl/certs
sudo chmod 700 /etc/ssl/private
```

### CA Console से Certificate (PEM) को फ़ाइल में Save करें

CA console के text box से certificate block copy करें और उसे `/etc/ssl/certs/example.com.crt` में save करें।

```bash
sudo nano /etc/ssl/certs/example.com.crt
sudo chmod 644 /etc/ssl/certs/example.com.crt
```

लोकली automated तरीके से save करने का उदाहरण:

```bash
sudo tee /etc/ssl/certs/example.com.crt >/dev/null <<'EOF'
-----BEGIN CERTIFICATE-----
(paste certificate content here)
-----END CERTIFICATE-----
EOF
sudo chmod 644 /etc/ssl/certs/example.com.crt
```

## Step 2Intermediate Certificate तैयार करें (CA Bundle / Intermediate)

कई CA, server certificate से अलग एक **Intermediate Certificate (या CA Bundle)** प्रदान करते हैं। इसके बिना, कुछ devices पर “untrusted” संदेश दिख सकते हैं।

### Intermediate Certificate Save करें (उदाहरण)

CA से प्राप्त intermediate certificate (एक या एकाधिक) को PEM format में निम्न स्थान पर save करें:

```bash
sudo nano /etc/ssl/certs/intermediate-ca.pem
sudo chmod 644 /etc/ssl/certs/intermediate-ca.pem
```

### यदि एक से अधिक Intermediate हों

यदि CA Bundle में एक से अधिक intermediate certificates हैं, तो उन्हें CA द्वारा निर्दिष्ट क्रम में (आमतौर पर root की दिशा में) एक ही फ़ाइल में जोड़ दें।

## Step 3Fullchain बनाएँ (Server Certificate + Intermediate)

Apache में, certificate फ़ाइल के रूप में **fullchain** (server certificate + intermediate) specify करना मानक प्रथा है।

```bash
sudo cat /etc/ssl/certs/example.com.crt 
  /etc/ssl/certs/intermediate-ca.pem 
  | sudo tee /etc/ssl/certs/example.com.fullchain.pem >/dev/null

sudo chmod 644 /etc/ssl/certs/example.com.fullchain.pem
```

## Step 4Private Key और Certificate के मिलान की जाँच करें (महत्वपूर्ण)

यदि certificate और private key मेल नहीं खाते, तो Apache configure करने के बाद भी HTTPS ठीक से काम नहीं करेगा। हमेशा जाँच करें।

### जाँच विधि A: RSA Key का मामला (Modulus तुलना)

```bash
openssl x509 -noout -modulus -in /etc/ssl/certs/example.com.crt | openssl md5
openssl rsa  -noout -modulus -in /etc/ssl/private/example.com.key | openssl md5
```

यदि दोनों MD5 values **समान** हैं, तो वे मेल खाते हैं।

### जाँच विधि B: Key Type से स्वतंत्र (Public Key SHA256 तुलना)

```bash
# Certificate → Public Key → SHA256
openssl x509 -in /etc/ssl/certs/example.com.crt -pubkey -noout 
  | openssl pkey -pubin -outform DER 
  | openssl sha256

# Private Key → Public Key → SHA256
openssl pkey -in /etc/ssl/private/example.com.key -pubout -outform DER 
  | openssl sha256
```

यदि दोनों SHA256 values **समान** हैं, तो वे मेल खाते हैं।

### यदि वे मेल नहीं खाते

- संभव है कि CSR किसी अन्य private key से बनाया गया था।
- यदि सही private key नहीं मिलती, तो आपको CA की ओर से **re-issue (Reissue)** करवाना होगा और सही key के साथ CSR फिर से बनाना होगा।

## Step 5Apache में HTTPS सक्षम करें

### आवश्यक Modules सक्षम करें

```bash
sudo a2enmod ssl
sudo a2enmod headers
sudo a2enmod rewrite
sudo systemctl reload apache2
```

### सत्यापित करें कि Port 443 पर Listen हो रहा है

आमतौर पर `/etc/apache2/ports.conf` में `Listen 443` होता है। आवश्यकतानुसार जाँच करें।

## Step 6Apache VirtualHost Configuration (443 + 80→443 Redirect)

यहाँ हम उदाहरण के तौर पर `example.com` के लिए एक site configuration फ़ाइल बनाकर लागू करेंगे।

### Site Configuration फ़ाइल बनाएँ (उदाहरण)

```bash
sudo nano /etc/apache2/sites-available/example.com.conf
```

### Configuration उदाहरण (WordPress मानकर)

**※ Code में `example.com` और `DocumentRoot` को अपने वास्तविक environment के अनुसार बदलें।**

```apache
<VirtualHost *:80>
    ServerName example.com

    # HTTP → HTTPS permanent redirect
    RewriteEngine On
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName example.com

    DocumentRoot /var/www/example.com/public

    # For WordPress (.htaccess operation case)
    <Directory /var/www/example.com/public>
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine on

    # Specify fullchain (server certificate + intermediate)
    SSLCertificateFile      /etc/ssl/certs/example.com.fullchain.pem
    SSLCertificateKeyFile   /etc/ssl/private/example.com.key

    # Recommended: Enable as needed (prioritize operation verification first)
    # Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

    ErrorLog ${APACHE_LOG_DIR}/example.com-ssl-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-ssl-access.log combined
</VirtualHost>
</IfModule>
```

### Site सक्षम करें

```bash
sudo a2ensite example.com.conf
```

### Configuration Test → Reload

```bash
sudo apache2ctl configtest
sudo systemctl reload apache2
```

यह जाँचने के लिए कि कौन-सा VirtualHost सक्षम है:

```bash
sudo apache2ctl -S
```

## Step 7WordPress को HTTPS में बदलें

### Site URL को HTTPS पर एकीकृत करें

- WordPress Admin Console → Settings → General
- “WordPress Address (URL)” और “Site Address (URL)” दोनों को `https://example.com` पर सेट करें

### Mixed Content का समाधान

- यदि images और CSS / JS `http://` पर ही रहते हैं, तो lock icon गायब हो जाएगा।
- Database replacement, theme settings, plugins आदि के जरिए `https://` पर एकीकृत करें (ऑपरेशन से पहले backup की सिफारिश की जाती है)।

## Step 8ऑपरेशन सत्यापित करें

### HTTPS कनेक्टिविटी (curl)

```bash
curl -I https://example.com/
curl -I http://example.com/
```

अपेक्षित परिणाम:

- `https://example.com/` 200 / 301 या अन्य सामान्य response लौटाता है
- `http://example.com/` 301 के साथ https पर redirect होता है

### Certificate Chain की जाँच (openssl)

```bash
echo | openssl s_client -connect example.com:443 -servername example.com -showcerts
```

### Browser से जाँच

- कोई certificate error नहीं दिखता
- Certificate details में अपेक्षित issuer / expiration / SAN और अन्य जानकारी दिखती है

## आम समस्याओं का निवारण

### Certificate सही होने के बावजूद “Untrusted” दिखता है

- Intermediate certificate (CA Bundle) प्रदान नहीं किया गया हो सकता है या fullchain में शामिल नहीं है।
- सत्यापित करें कि `SSLCertificateFile` fullchain की ओर इंगित करता है।

### Apache Startup / Reload SSL Error के साथ विफल होता है

- Private key का path गलत हो सकता है, permissions अनुपयुक्त हो सकती हैं, या key और certificate मेल नहीं खा रहे हों।
- “Step 4” की मिलान जाँच फिर से चलाएँ।

### Redirect Loop होता है

- WordPress पक्ष (siteurl / home) और Apache पक्ष (80 → 443) एक-दूसरे के विरोधाभासी हो सकते हैं।
- यदि Cloudflare जैसे CDN / reverse proxy का उपयोग हो रहा है, तो SSL mode settings का भी असर हो सकता है।

## Rollback

- लागू करने से पहले Apache site configuration फ़ाइलों और certificate-संबंधित फ़ाइलों के backup की सिफारिश की जाती है।
- यदि समस्याएँ आती हैं, तो संबंधित site को अक्षम करके reload करें।

```bash
sudo a2dissite example.com.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
```

## ऑपरेशन नोट्स (Renewal / Re-issuance)

- Renewal / re-issuance की मूल प्रक्रिया: **नया CSR → CA पर Re-issue / Renewal → Fullchain बदलें → Apache reload**
- Private key compromise का संदेह होने पर: **Revoke → नई key से CSR बनाएँ → Re-issue**
- Certificate फ़ाइलों में बदलाव न करें; जारी की गई सामग्री (PEM) को सटीक रूप से save रखें
