在Apache服务器上安装SSL证书并配置http跳转https教程

具体参考:阿里云教程

此文为落坑总结

1、在修改httpd.conf配置文件部分,需进行以下设置

#LoadModule ssl_module modules/mod_ssl.so  #删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用SSL服务,Apache默认是不启用该模块的。如果找不到该配置,请重新编译mod_ssl模块。
#Include conf/extra/httpd-ssl.conf  #删除行首的配置语句注释符号“#”。  
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so     #删除行首的配置语句注释符号“#”

多了第三条的解注释,不开放此语句时,运行apache会报错

AH00526: Syntax error on line 92 of
/usr/local/apache/conf/extra/httpd-ssl.conf: SSLSessionCache: ‘shmcb’
session cache not supported (known names: ). Maybe you need to load
the appropriate socache module (mod_socache_shmcb?).

2、 修改httpd-ssl.conf配置文件部分,添加以下操作

<VirtualHost *:443>     
    ServerName   #修改为申请证书时绑定的域名www.YourDomainName1.com。                    
    DocumentRoot  设置为网站根目录         
    SSLEngine on   
    SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   # 修改加密套件。
    SSLHonorCipherOrder on
    SSLCertificateFile cert/domain name1_public.crt   # 将domain name1_public.crt替换成您证书文件名。
    SSLCertificateKeyFile cert/domain name1.key   # 将domain name1.key替换成您证书的密钥文件名。
    SSLCertificateChainFile cert/domain name1_chain.crt  # 将domain name1_chain.crt替换成您证书的密钥文件名;证书链开头如果有#字符,请删除。
</VirtualHost>

添加了documentRoot部分的说明

3、重启Apache服务器使SSL配置生效我使用的命令是

service httpd restart

4、设置HTTP请求自动跳转HTTPS部分原文方法行不通,我使用的是以下方法

1)在httpd.conf文件里使下面模块生效

LoadModule rewrite_module modules/mod_rewrite.so    #打开这个模块功能

2)httpd.conf配置文件找到你网站目录的段,修改其中的 AllowOverride None 为 AllowOverride All;

DocumentRoot "/data/vhosts"
<Directory "/data/vhosts">
    Options FollowSymLinks MultiViews Includes
    AllowOverride All
    Require all granted
</Directory>

保存并重启apache服务

3)在你的网站根目录下面添加该文件".htaccess"目录访问控制文件,并添加如下内容:

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

含义是这样的:为了让用户访问传统的http://转到https://上来,用了一下rewrite规则:
第一句:启动rewrite引擎
第二句:rewrite的条件是访问的服务器端口不是443端口
第四句:这是正则表达式,整句的意思是讲:启动rewrite模块,将所有访问非443端口的域名请求,url地址内容不变,将http://变成https://。

注意:在你网站目录下放一个.htaccess文件。注意:windows环境下,不能把文件直接改名为.htaccess,会提示你必须输入文件名。所以我们先新建一个“新建文本文档.txt”文档,再用记事本打开,选择另存为,保存类型选择“所有文件(.)”,文件名输入“.htaccess”,保存。这样便生成了一个.htaccess文件。

大功告成!

参考:
https://help.aliyun.com/document_detail/98727.html?spm=5176.2020520163.0.0.614d56a7JW7D2K
https://www.cnblogs.com/Crazy-Liu/p/11115681.html
https://blog.csdn.net/zhwxl_zyx/article/details/88338183

上一篇:Java学习笔记-语法篇[==与equals的区别]


下一篇:sizeof(s)和strlen(s)的区别