注意环境的冲突问题,修改前最好查看历史记录,看之前的人用的apache重启命令是什么,有的时候命令不同会有差别
查找配置文件
开始配置之前您需要找到位于客户机上的 Apache 配置文件 httpd.conf。( Windows 客户机上的配置文件地址通常乎会位于所用集成环境的安装文件/Apache/conf文件夹内)
开启 mod_ssl 模块
请使用 Notpad++ 编辑器(不要使用 Windows 记事本)打开查找到 httpd.conf 配置文件。
在编辑器内按下查找快捷键 Control+F 唤出内容查找器,输入 mod_ssl.so 并点击查找。
去除下面两行之前的#号,并保存配置文件。
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so
开启Apache SSL功能
继续编辑配置文件 httpd.conf,在文件末尾增加下列内容并保存:
Listen 443
SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4
SSLHonorCipherOrder on
SSLProtocol -all +TLSv1.2 +SSLv3
SSLProxyProtocol all +TLSv1.2 +SSLv3
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
准备证书文件
请您以 .crt 结尾或 .pem 结尾的证书、CA 证书链文件和以 .key 结尾的私钥文件上传至 httpd.conf 配置文件所在目录下的 ssl 文件夹内
(若无 ssl 文件夹请创建)为了方便理解,这里假设我们上传的证书和私钥文件为:
ssl/mydomain.pem
ssl/ca-chain.pem
ssl/mydomain.key
创建网站的SSL配置文件
我这次的目录是在安装目录/Apache24/conf/extra/
的httpd-vhosts.conf
文件
增加了如下两行代码,意思就是新增一个虚拟主机的指向,其中DocumentRoot
的配置要改成你的目录
<VirtualHost *:443>
ServerAdmin www.xxx.com
DocumentRoot "/mnt/www/public"
ServerName www.xxx.com:443
SSLEngine on
SSLCertificateFile "/mnt/ssl/cert.pem"
SSLCertificateKeyFile "/mnt/ssl/private.key"
SSLCertificateChainFile "/mnt/ssl/chain.pem"
</VirtualHost>
<VirtualHost *:443>
ServerAdmin xxx.com
DocumentRoot "/mnt/www/public"
ServerName xxx.com:443
SSLEngine on
SSLCertificateFile "/mnt/ssl/cert.pem"
SSLCertificateKeyFile "/mnt/ssl/private.key"
SSLCertificateChainFile "/mnt/ssl/chain.pem"
</VirtualHost>
重启apache使配置生效
这里要注意,apache重启命令实际分为两种,有的是httpd
我用的
service httpd restart
有问题的
sudo systemctl restart httpd
注意事项
原来的机子安装了httpd-2.4.29 和Apache24导致了上述命令冲突,当我在执行了命令安装sudo yum install -y mod_ssl
时候,用下面的命令执行的时候,导致直接启动了httpd冲突了,进去了Apache的默认欢迎页,配置全部干到/etc/httpd/conf.d
导致冲突,所以我直接用service httpd restart命令重启的时候提示占用,最后查占用的进程,结束,再用那个命令就ok了