Apache httpd : mod_md कॉन्फ़िगर करें2024/05/14 |
|
Let's Encrypt से प्रमाणपत्रों के प्रबंधन को स्वचालित करने के लिए [mod_md] को स्थापित और कॉन्फ़िगर करें।
प्रत्येक वर्चुअलहोस्ट को कॉन्फ़िगर करना संभव है।
और इसे [mod_md] वाली साइट के लिए यहां की तरह मैन्युअल SSL/TLS सेटिंग कॉन्फ़िगर करने की आवश्यकता नहीं है।
इसके अलावा यह आवश्यक है कि Let's Encrypt के सत्यापन के कारण इंटरनेट से [mod_md] के साथ साइट तक पहुंच संभव हो।
|
|
| [1] | [mod_md] स्थापित करें। |
|
[root@www ~]#
dnf -y install mod_md
[root@www ~]#
systemctl restart httpd
# इंस्टॉल करने के बाद, [mod_md] सक्षम है [root@www ~]# cat /etc/httpd/conf.modules.d/01-md.conf LoadModule md_module modules/mod_md.so |
| [2] | [mod_md] कॉन्फ़िगर करें। |
|
[root@www ~]#
vi /etc/httpd/conf.d/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 दिन * 33% ≒ 30 दिन
# यदि आप दिन के साथ सेट करना चाहते हैं, तो निर्दिष्ट करें [d]
# 30 दिन ⇒ [30d]
# [MDStoreDir]
# निर्देशिका प्रमाणपत्र या अन्य डेटा संग्रहीत हैं
# यदि निर्दिष्ट नहीं है, तो डिफ़ॉल्ट है [md]
# यह [ServerRoot] से [httpd.conf] में सापेक्ष पथ है
# [md-status]
# एमडी स्थिति की निगरानी करें
|
| [3] | यदि SELinux सक्षम है, तो नीति बदलें। |
|
[root@www ~]# setsebool -P httpd_can_network_connect on
[root@www ~]#
vi mod-md.te # नया निर्माण
module mod-md 1.0;
require {
type httpd_config_t;
type httpd_t;
class dir { add_name create remove_name rename reparent rmdir setattr write };
class file { create rename setattr unlink write };
}
#============= httpd_t ==============
allow httpd_t httpd_config_t:dir { add_name create remove_name rename reparent rmdir setattr write };
allow httpd_t httpd_config_t:file { create rename setattr unlink write };
checkmodule -m -M -o mod-md.mod mod-md.te [root@www ~]# semodule_package --outfile mod-md.pp --module mod-md.mod [root@www ~]# semodule -i mod-md.pp |
| [4] | प्रत्येक वर्चुअलहोस्ट को कॉन्फ़िगर करें जिसे आप [mod_md] सेट करना चाहते हैं। इसे प्रत्येक [ServerAdmin] निर्देश के लिए वैध ईमेल पता निर्दिष्ट करने की आवश्यकता है क्योंकि Let's Encrypt विभिन्न सूचनाएं भेजेगा। |
|
# उदाहरण के लिए, साइट [rx-9.srv.world] साइट पर सेट करें [root@www ~]# vi /etc/httpd/conf.d/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.srv.world
ServerName rx-9.srv.world
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
DocumentRoot /var/www/rx-9.srv.world
ServerName rx-9.srv.world
</VirtualHost>
[root@www ~]#
systemctl reload httpd
# प्रारंभिक शुरुआत में, कुछ सत्यापन जाँचें चलती हैं और # डमी प्रमाणपत्र आपके द्वारा [MDStoreDir] के लिए निर्धारित निर्देशिका के अंतर्गत बनाया गया है [root@www ~]# ll /etc/httpd/md/domains/rx-9.srv.world total 12 -rw-------. 1 root root 1704 May 14 13:19 fallback-privkey.pem -rw-------. 1 root root 1168 May 14 13:19 fallback-pubcert.pem -rw-------. 1 root root 596 May 14 13:19 md.json # यदि सभी जांचें सफल हो जाती हैं, तो वैध प्रमाणपत्र प्राप्त हो जाता है [root@www ~]# ll /etc/httpd/md/domains/rx-9.srv.world total 20 -rw-------. 1 root root 4895 May 14 13:19 job.json -rw-------. 1 root root 654 May 14 13:19 md.json -rw-------. 1 root root 1704 May 14 13:19 privkey.pem -rw-------. 1 root root 3591 May 14 13:19 pubcert.pem |
| [5] | इस प्रकार [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 14 03:19:22 2024 GMT notAfter=Aug 12 03:19:21 2024 GMT |
|
| Sponsored Link |
|
|