Ubuntu 24.04
Sponsored Link

Apache2 : mod_md कॉन्फ़िगर करें2024/05/31

 

Let's Encrypt से प्रमाणपत्रों के प्रबंधन को स्वचालित करने के लिए [mod_md] को स्थापित और कॉन्फ़िगर करें।

प्रत्येक वर्चुअल होस्ट के लिए कॉन्फ़िगर करना संभव है।
और इसे [mod_md] वाली साइट के लिए यहाँ की तरह मैन्युअल SSL/TLS सेटिंग कॉन्फ़िगर करने की आवश्यकता नहीं है।

इसके अलावा यह आवश्यक है कि Let's Encrypt से सत्यापन के कारण [mod_md] के साथ इंटरनेट से साइट तक पहुंच संभव हो।

[1] [mod_md] स्थापित करें।
root@www:~#
apt -y install libapache2-mod-md
[2] [mod_md] कॉन्फ़िगर करें।
root@www:~#
vi /etc/apache2/conf-available/acme.conf
# नया निर्माण

MDBaseServer              on
MDCertificateProtocol     ACME
MDCAChallenges            http-01
MDDriveMode               auto
MDPrivateKeys             RSA 2048
MDRenewWindow             33%
MDStoreDir                md
MDCertificateAuthority    https://acme-v02.api.letsencrypt.org/directory
MDCertificateAgreement    https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf

<Location "/md-status">
    SetHandler md-status
    Require ip 127.0.0.1 10.0.0.0/24
</Location>

# [MDRenewWindow]
# यदि निर्दिष्ट नहीं है तो डिफ़ॉल्ट [33%] है
# यदि प्रमाणपत्रों की वैधता निर्दिष्ट अवधि से कम हो जाती है,
# [mod_md] को नए प्रमाणपत्र मिलेंगे
# 90 days * 33% ≒ 30 days
# यदि आप दिन के साथ सेट करना चाहते हैं, तो निर्दिष्ट करें [d]
# 30 days ⇒ [30d]

# [MDStoreDir]
# निर्देशिका प्रमाणपत्र या अन्य डेटा संग्रहीत हैं
# यदि निर्दिष्ट नहीं है, तो डिफ़ॉल्ट है [md]
# यह [httpd.conf] में [ServerRoot] से सापेक्ष पथ है

# [md-status]
# MD स्थिति की निगरानी करें
[3] प्रत्येक वर्चुअलहोस्ट को कॉन्फ़िगर करें जिसे आप [mod_md] सेट करना चाहते हैं।
इसे प्रत्येक [ServerAdmin] निर्देश के लिए वैध ईमेल पता निर्दिष्ट करने की आवश्यकता है क्योंकि Let's Encrypt विभिन्न सूचनाएं भेजेगा।
# उदाहरण के लिए, साइट [rx-9.srv.world] साइट पर सेट करें

root@www:~#
vi /etc/apache2/sites-available/rx-9.srv.world.conf
MDomain rx-9.srv.world
MDCertificateAgreement accepted
DirectoryIndex index.html
ServerAdmin root@rx-9.srv.world

<VirtualHost *:80>
    DocumentRoot /var/www/rx-9
    ServerName rx-9.srv.world
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    DocumentRoot /var/www/rx-9
    ServerName rx-9.srv.world
</VirtualHost>

root@www:~#
a2enmod md

Enabling module md.
To activate the new configuration, you need to run:
  systemctl restart apache2
root@www:~#
a2enconf acme

Enabling conf acme.
To activate the new configuration, you need to run:
  systemctl reload apache2
root@www:~#
a2ensite rx-9.srv.world

Enabling site rx-9.srv.world.
To activate the new configuration, you need to run:
  systemctl reload apache2

root@www:~#
systemctl restart apache2
# प्रारंभिक लोडिंग पर, कुछ सत्यापन जाँचें चलती हैं और
# डमी प्रमाणपत्र आपके द्वारा [MDStoreDir] के लिए निर्धारित निर्देशिका के अंतर्गत बनाया गया है

root@www:~#
ll /etc/apache2/md/domains/rx-9.srv.world

total 20
drwx------ 2 root root 4096 May 30 23:52 ./
drwx------ 3 root root 4096 May 30 23:52 ../
-rw------- 1 root root 1704 May 30 23:52 fallback-privkey.pem
-rw------- 1 root root 1168 May 30 23:52 fallback-pubcert.pem
-rw------- 1 root root  596 May 30 23:52 md.json

# पुनः लोड करें

root@www:~#
systemctl reload apache2
# यदि सभी जांचें सफल हो जाती हैं, तो वैध प्रमाणपत्र प्राप्त हो जाता है

root@www:~#
ll /etc/apache2/md/domains/rx-9.srv.world

total 28
drwx------ 2 root root 4096 May 30 23:52 ./
drwx------ 3 root root 4096 May 30 23:52 ../
-rw------- 1 root root 4895 May 30 23:52 job.json
-rw------- 1 root root  654 May 30 23:52 md.json
-rw------- 1 root root 1704 May 30 23:52 privkey.pem
-rw------- 1 root root 3591 May 30 23:52 pubcert.pem
[4] इस प्रकार [openssl] कमांड के साथ प्रमाणपत्र की समाप्ति तिथि और अन्य की पुष्टि करना संभव है।
या आपके द्वारा [2] पर सेट किए गए [md-status] के यूआरएल तक पहुंचने के लिए उन्हें देखना संभव है।
root@www:~#
openssl s_client -connect rx-9.srv.world:443 | openssl x509 -noout -startdate -enddate

depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = rx-9.srv.world
verify return:1
notBefore=May 30 22:52:15 2024 GMT
notAfter=Aug 28 22:52:14 2024 GMT
मिलान सामग्री