请关注本头条号,每天坚持更新原创干货技能文章。
如需学习视频,请在微信搜索"大众号“智传网优”直接开始自助视频学习
1. 序言

本文紧张讲解如何在CentOS8或RHEL8上安装带mod_ssl和mod_http2模块的Apache。如何安装mod_ssl的RHEL8/CentOS 8?如何在RHEL8或CentOS8上安装mod_http2 ?本文将谈论如何安装带有mod_ssl和mod_http2模块的Apache web做事器。Apache是Apache软件基金会开拓的开源web做事器。web做事器(HTTP做事器)是一种网络做事,用于通过超文本传输协议(HTTP)在web上向客户机供应内容。
在CentOS8或RHEL8上安装带mod_ssl和mod_http2模块的Apache httpd
在Red Hat Enterprise 8 (RHEL 8)中,Apache HTTP做事器已更新到版本2.4.33,并具有以下新特性。
预配置多处理模块(MPM)suexec许可用户利用的最小UID和GID现在分别是1000和500 (RHEL 7 httpd利用100和100)。对付设置httpd做事的环境变量,/etc/sysconfig/httpd不再是受支持的接口现在通过mod_http2包支持HTTP/2。新增模块:mod_proxy_uswsgi、mod_proxy_hcheck、mod_proxy_fdpass、mod_cache_socache、mod_md。新的子包httpd-filesystem拥有目录。新的httpd-init.service。做事更换了%post script来创建自署名的mod_sslkeypair。mod_auth_kerb模块已经被mod_auth_gssapi模块所取代。2. 在RHEL8或者CentOS8系统上安装Apache
RHEL8或CentOS8中的Apache Web做事器包称为httpd。此包及其工具通过运用程序流存储库分发。利用该命令在RHEL8或CentOS8上安装httpd模块。
sudo yum install @httpd
实行输出:Updating Subscription Management repositories.Updating Subscription Management repositories.Last metadata expiration check: 0:43:01 ago on Sat 29 Dec 2018 09:52:44 AM EAT.Dependencies resolved.Package Arch Version Repository SizeInstalling group/module packages:httpd x86_64 2.4.35-6.el8+2089+57a79027 rhel-8-for-x86_64-appstream-beta-rpms 1.4 Mhttpd-filesystem noarch 2.4.35-6.el8+2089+57a79027 rhel-8-for-x86_64-appstream-beta-rpms 32 khttpd-tools x86_64 2.4.35-6.el8+2089+57a79027 rhel-8-for-x86_64-appstream-beta-rpms 99 kmod_ssl x86_64 1:2.4.35-6.el8+2089+57a79027 rhel-8-for-x86_64-appstream-beta-rpms 127 kmod_http2 x86_64 1.11.3-1.el8+2087+db8dc917 rhel-8-for-x86_64-appstream-beta-rpms 156 kInstalling dependencies:apr x86_64 1.6.3-8.el8 rhel-8-for-x86_64-appstream-beta-rpms 125 kapr-util x86_64 1.6.1-6.el8 rhel-8-for-x86_64-appstream-beta-rpms 105 kredhat-logos-httpd noarch 80.5-1.el8 rhel-8-for-x86_64-baseos-beta-rpms 24 kInstalling weak dependencies:apr-util-bdb x86_64 1.6.1-6.el8 rhel-8-for-x86_64-appstream-beta-rpms 25 kapr-util-openssl x86_64 1.6.1-6.el8 rhel-8-for-x86_64-appstream-beta-rpms 27 kInstalling module profiles:httpd/defaultEnabling module streams:httpd 2.4Transaction SummaryInstall 10 PackagesTotal download size: 2.1 MInstalled size: 5.7 MIs this ok [y/N]: y
这将安装以下httpd包。
httpd: Apache HTTP web做事器。httpd-filesystem: 包含Apache HTTP做事器的基本目录布局,包括目录的精确权限。httpd-tools: 包含可以与Apache HTTP做事器一起利用的工具mod_http2: Apache上的2个协议(h2+h2c)mod_ssl: 通过安全套接字层(SSL)和传输层安全性(TLS)协议为Apache Web做事器供应强大的加密。以及其它的依赖关系 – apr默认情形下,httpd做事从以下位置读取配置。
/etc/httpd/conf/httpd.conf – 这是紧张的httpd配置文件。/etc/httpd/conf.d/ – 这是主配置文件中包含的配置文件的赞助目录。您可以将类似于VirtualHosts的配置文件放在这个目录中。/etc/httpd/conf.modules.d/ – 包含加载RHEL中打包的动态模块的配置文件。首先处理此目录中的配置文件。/usr/lib64/httpd/modules/ – 带有httpd模块的目录。
3. 在RHEL8或CentOS 8上管理httpd做事
本节将描述如何管理Apache HTTP做事状态——启动、停滞、重启和检讨当前状态。
3.1 开启httpd做事:
sudo systemctl start httpd.service
利用下面的命令,使httpd做事在启动时自动启动:
sudo systemctl enable httpd.service
或者
利用一条命令设置httpd做事开机自启动及立即启动。
sudo systemctl enable --now httpd.service
确认做事是否设置为开机启动。
sudo systemctl is-enabled httpd.service
enabled
3.2 停滞httpd做事
要停滞正在运行的httpd做事,请输入以下命令:
sudo systemctl stop httpd.service
要防止做事在启动时自动启动,请键入:
sudo systemctl disable httpd.service
3.3 重启httpd做事
有两个重新启动httpd做事的选项。
停滞正在运行的httpd做事,并立即重新启动它—这在安装或删除动态加载的模块(如PHP)之后非常有用。sudo systemctl restart httpd.service重新加载配置而不影响活动要求—正在运行的httpd做事将只重新加载其配置文件,当前正在处理的所有要求将连续利用旧的配置。
sudo systemctl reload httpd.service
要检讨配置中可能涌现的缺点,输入:
sudo apachectl configtest
Syntax OK
如果配置文件没有缺点,您该当得到Syntax OK的输出结果。
4. 在RHEL8或者CentOS8系统上加载SSL模块
我们安装了mod_ssl模块,但是在利用它之前,必须利用LoadModule指令加载模块。
在RHEL8或者CentOS8系统上加载SSL模块
要加载mod_ssl DSO,请在httpd.conf配置文件的末端添加下面一行。
LoadModule ssl_module modules/mod_ssl.so
见下面截图。
在RHEL8或者CentOS8系统上加载SSL模块
加载模块后重新启动Web做事器以重新加载配置。
sudo systemctl restart httpd
默认的SSL配置文件/etc/httpd/conf.d/ssl.conf。例如,您可以通过修正这个文件中的SSL Protocol指令来禁用SSL版本2和SSL版本3。
SSLProtocol all -SSLv2 -SSLv3
下面一行将禁用所有的SSL和TLS协议除了TLS 1和以上
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
变动之后重新启动Apache守护进程。
sudo systemctl restart httpd
要检讨启用或禁用了哪些版本的SSL和TLS,可以利用openssl s_client -connect命令。openssl s_client -connect命令。openssl s_client -connect hostname:port -protocol
openssl s_client -connect <hostname>:<port> -<protocol>
可选的协议-ssl2, -ssl3,-tls1,-tls1_1,-tls1_2 等等。
查看以下案例
# Test if SSLv3 is enabled$ openssl s_client -connect localhost:443 -ssl3# Test if TLSv1.2 is enable$ openssl s_client -connect localhost:443 -tls1_2
输出类似的结果:
# openssl s_client -connect localhost:443 -tls1_2CONNECTED(00000004)depth=1 C = US, O = Unspecified, OU = ca-4688871391028164607, CN = rhel8.local, emailAddress = root@rhel8.localverify error:num=19:self signed certificate in certificate chain---Certificate chain 0 s:C = US, O = Unspecified, CN = rhel8.local, emailAddress = root@rhel8.local i:C = US, O = Unspecified, OU = ca-4688871391028164607, CN = rhel8.local, emailAddress = root@rhel8.local 1 s:C = US, O = Unspecified, OU = ca-4688871391028164607, CN = rhel8.local, emailAddress = root@rhel8.local i:C = US, O = Unspecified, OU = ca-4688871391028164607, CN = rhel8.local, emailAddress = root@rhel8.local---Server certificate-----BEGIN CERTIFICATE-----MIIErTCCApWgAwIBAgIIfoNXRr0/654wDQYJKoZIhvcNAQELBQAwezELMAkGA1UEBhMCVVMxFDASBgNVBAoMC1Vuc3BlY2lmaWVkMR8wHQYDVQQLDBZjYS00Njg4ODcxMzkxMDI4MTY0NjA3MRQwEgYDVQQDDAtyaGVsOC5sb2NhbDEfMB0GCSqGSIb3DQEJARYQcm9vdEByaGVsOC5sb2NhbDAeFw0xODEyMjkwNzQ3NDFaFw0yMDAxMDMwOTI3NDFaMFoxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtVbnNwZWNpZmllZDEUMBIGA1UEAwwLcmhlbDgubG9jYWwxHzAdBgkqhkiG9w0BCQEWEHJvb3RAcmhlbDgubG9jYWwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDCXG/tlwvg8jf7Aa+rBXt8V0ZV5krqXnkF3N2xccKjJLKRY6psny0rdaf7qNF9fjNPTNmP6PdqSvpxvhG0gjoVlo0PU79M7sq74esx8A+UdSqPkqDfnrszBthb+PYBj0yQu88/0aS6GIPWbeWF235ZuRIAYdin92ZmcXqsafX1qGlErgZN+UrisrVPZFgM2rKWMnuIxOmSeqwdsrHGIlv2lROipNxEosqqqBXAVS3VX7Q8yMaGT3GgU6Nf8TbT84lnMDsYj4bgtlh1Ry+ck8jAmuN3rujvgCsTWQ1v4s4m5/p/iq3aGFOyIq8z2qdCA24leYhSXpPrFqkKXIr7UkTtAgMBAAGjVjBUMA4GA1UdDwEB/wQEAwIFoDAJBgNVHRMEAjAAMBYGA1UdEQQPMA2CC3JoZWw4LmxvY2FsMB8GA1UdIwQYMBaAFOwi+L9TpxZTDY3TYF29uCq5mW7MMA0GCSqGSIb3DQEBCwUAA4ICAQAWgBjsNHhcI9dAAs1cuhmox6j7EYS2nGDe+BVlMdtETVBbSfUV27L+9G3NF9XMOjrUmX67mBqEsGwLiyUaDSFS8JgcJ1zw0V2Q0k8PLgnBuGKOwkKvPWGPtB2GGJCTBbp0WCByPNsufyIG8+7GHov0StG6s8nYUSSjHHQcZpx42BybuLmGt6GvSgN+TMPJl5mApPHNdpUrrf8DWyyP2yAgoB6/XSy3rafBP+1WE38Cs+iHgFoTH05iFtPtMVF1/oLVA4jDfU0T4thqoHFLNwAWYPts6dOgOwT9rZe8e0FtbXCd4PJ+3RZHB+JV+IPVF6nF+GVXxr0jT/Fu6+15dHVWbdZUWzscdSV8lae0vyhpjQRgUdISqbVhmWt1ruRTgZ443fj6NgrFeht0X3pS1WnHyxMT3Aj6nAZnInlZoaX0xNdPE31ZsgWn6yoFXVEWlVs50xZ+31V+2/LDLQiqVYMRoid1uRZxAp4X80AMUfqcv4g3/ebLhLsdStCVT7YASrJ/a8fRNNFEJhHOlPaqVsaerBvKrviyjocEQsPzX2cKoP1RlmDMUoDqFHUo8jIFsWAC2YKe0rsNTSwZTYUHZuc+FzRyKKmpsIrzFMNlgZ3hevqQPJDRyyB+Nru6mxqSn6L36PbdfYkWOWEDmllnCTAATopYBtmegsYncFRNnEnBBg==-----END CERTIFICATE-----subject=C = US, O = Unspecified, CN = rhel8.local, emailAddress = root@rhel8.localissuer=C = US, O = Unspecified, OU = ca-4688871391028164607, CN = rhel8.local, emailAddress = root@rhel8.local.......
配置SSL密钥和证书的指令如下:
SSLCertificateFile /etc/pki/tls/certs/server.crtSSLCertificateKeyFile /etc/pki/tls/private/server.key
配置防火墙如果正在运行firewalld做事,请许可端口80和443。
sudo firewall-cmd --add-service={http,https} --permanent
success
sudo firewall-cmd --reload
success
firewall-cmd --list-services
cockpit dhcpv6-client http https ssh
5. 在RHEL8或者CentOS8系统上加载HTTP/2模块- mod_http2
通过加载mod_http2模块来支持HTTP/2
在RHEL8或者CentOS8系统上加载HTTP/2模块- mod_http2
LoadModule http2_module modules/mod_http2.so
也添加下面的协议指令
Protocols h2 h2c http/1.1
协议指令参数的含义:h2 – 指示Apache在SSL/TLS上支持HTTP/2协议h2c – 指示Apache通过TCP支持HTTP/2http/1.1 – 如果客户端不接管HTTP/2,那么通过HTTP/1.1做事要求
重新启动Apache web做事器以重新加载配置。
sudo systemctl restart httpd
6. 在RHEL8或者CentOS8系统上设置虚拟主机
Apache HTTP做事器有一个内置的虚拟主机,许可根据要求的IP地址、主机名或端供词给信息。将您的虚拟主机配置文件放在/etc/httpd/conf.d/目录中。
举例:
sudo vim /etc/httpd/conf.d/example.conf
输出以下类似的结果:
<VirtualHost :80> ServerAdmin admin@example.com DocumentRoot "var/www/html/example" ServerName linuxrumen.com ServerAlias www.linuxrumen.com ErrorLog "/var/log/httpd/example-error_log" CustomLog "/var/log/httpd/example-access_log" common</VirtualHost>
ServerName必须是分配给承载站点的做事器的有效DNS名称。
重新启动httpd做事以激活新创建的虚拟主机。
sudo systemctl restart httpd
7. 总结
通过本文,您该当可以学习到如何在CentOS8或者RHEL8系统上安装和配置带mod_ssl和mod_http2模块的Apache httpd做事了吧?
本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:https://www.linuxrumen.com/rmxx/1490.html
点击理解更多,快速查看更多的技能文章列表。