【避坑总结】在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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要将 Linux 2 系统配置Apache2 服务器,并实现 HTTP 自动跳转HTTPS,需要按照以下步骤进行操作: 1. 安装 Apache2 服务器 执行以下命令来安装 Apache2 服务器: ``` sudo apt update sudo apt install apache2 ``` 2. 安装 SSL 证书 为了启用 HTTPS,需要在服务器上安装 SSL 证书。可以使用 Let's Encrypt 免费证书服务来获取证书。 执行以下命令来安装 Let's Encrypt 客户端: ``` sudo apt install certbot python3-certbot-apache ``` 然后,执行以下命令获取证书: ``` sudo certbot --apache ``` 根据提示输入相关信息,等待证书生成完成。 3. 配置 Apache2 服务器 执行以下命令来启用 Apache2 的 SSL 模块: ``` sudo a2enmod ssl ``` 然后,编辑 `/etc/apache2/sites-available/default-ssl.conf` 文件,将以下行取消注释: ``` SSLEngine on SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem ``` 将 `yourdomain.com` 替换为你的域名。 接下来,编辑 `/etc/apache2/sites-available/000-default.conf` 文件,将以下行添加到 `<VirtualHost *:80>` 中: ``` RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ``` 保存并关闭文件。 执行以下命令来启用上述更改: ``` sudo a2ensite default-ssl.conf sudo a2enmod rewrite sudo systemctl restart apache2 ``` 4. 测试 现在,访问你的网站,应该会自动跳转HTTPS。同时,可以使用以下命令来检查 Apache2 的状态: ``` systemctl status apache2 ``` 希望这些信息能够帮助你将 Linux 2 系统配置Apache2 服务器,并实现 HTTP 自动跳转HTTPS

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值