就像在我的 centos 7
httpd.conf
中一样,我将 ssl_module
包含为 LoadModule ssl_module modules/mod_ssl.so
。httpd: Syntax error on line 71 of /etc/httpd/conf/httpd.conf: Cannot load modules/mod_ssl.so into server: /etc/httpd/modules/mod_ssl.so: cannot open shared object file: No such file or directory
然后我跑
yum install openssl
,我得到了Package 1:openssl-1.0.2k-12.el7.x86_64 already installed and latest version Nothing to do.
whereis openssl
,我得到了
openssl: /usr/bin/openssl /usr/lib64/openssl /usr/share/man/man1/openssl.1ssl.gz
执行即可
yum install mod_ssl
安装模块(如果不存在)
您阅读过操作系统的文档吗?
mod_ssl 的配置位于
/etc/httpd/conf.d/ssl.conf
您可以通过
验证文件
/etc/httpd/modules/mod_ssl.so
是否存在吗
ls -l /etc/httpd/modules/mod_ssl.so
并通过编辑您的问题来输入结果。
另外,如果您的 httpd 进程在 apache 用户(或其他非 root 用户)下运行,请验证
/etc/httpd
目录及其所有文件和子目录是否具有适当的权限。
要使用 apache httpd 配置 mod_ssl,您需要按照以下步骤操作:
机器详细信息($ hostnamectl):
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.49.1.el7.x86_64
Architecture: x86-64
Apache 版本($ httpd -V):
Server version: Apache/2.4.6 (CentOS)
Server built: May 30 2023 14:01:11
安装mod_ssl:
yum install -y mod_ssl
创建加密私钥,您还可以添加密码:
openssl genrsa -aes128 -out your-key-path/httpdkey.pem
使用加密私钥生成自签名证书:
openssl req -new -x509 -key your-key-path/httpdkey.pem -out certs/httpdcert.pem -days 365
填写所需信息,如密码和地址、常用名、电子邮件等。
首先我们创建了私钥,现在第二个命令生成与私钥对应的自签名证书。私钥和证书的组合形成了基本的安全设置,通常用于测试和开发目的。在生产环境中,我们应该从受信任的证书颁发机构(CA)获取证书,而不是使用自签名证书,Amazon ACM 提供免费的 SSL 证书。
更新 apache 配置文件中的证书路径:
vim /etc/httpd/conf.d/ssl.conf
并添加这些:
ServerName your-domain.com:443
SSLCertificateFile /your/path/to/certs/httpdcert.pem
SSLCertificateKeyFile /your/path/to/cert/httpdkey.pem
重启httpd,在防火墙中添加443端口,重启防火墙:
systemctl restart httpd
firewall-cmd --add-service=https --permanent
firewall-cmd --reload