随笔 - 144  文章 - 0  评论 - 2  阅读 - 19万

Linux上面配置Apache2支持Https(ssl)具体方案实现

虽然Nginx比较流行,但是由于一些老项目用到了Apache2来支持Web服务,最近想给服务上一个Https支持,虽然看似教程简单,但是也遇到一些特殊情况,经历了一番折腾也算是解决了所有问题,将过程记录如下。演示是基于Ubantu系统。

在这里插入图片描述

申请ssl证书

首先为自己的域名申请好ssl证书,这里用到了阿里云的免费证书。下载的时候选择apache的版本。解压后里面包含三个文件,这三个文件后面都要放到服务器上面。
在这里插入图片描述

配置证书

然后登录到服务器上面,进行相应的文件与配置调整,首选是要配置Apache2支持ssl,在服务器上面运行如下命令。

apt-get install openssl
a2enmod ssl

然后 vim /etc/apache2/ports.conf,看是否配置了443的监听,一般情况下内容如下表示是正常情况。
在这里插入图片描述
然后继续配置证书相关的东西,先把证书上传到服务器并放到指定位置,ftp或者rz命令都可以,后面要用到。

cd /etc/apache2/sites-available/

在这里插入图片描述
可以看到上图有两个文件,这里主要用到了default-ssl.conf,然后选择编辑它。核心就是下面的一些内容,重点是证书的应用决定了https服务能不能配置成功。

<IfModule mod_ssl.c>
        #<VirtualHost _default_:443>
        <VirtualHost *:443>
                ServerName 你的域名
                DocumentRoot WEB根目录
                SSLEngine on
                SSLCertificateFile      public.crt证书文件位置
                SSLCertificateKeyFile   key证书文件位置
                SSLCertificateChainFile chain.crt证书文件位置
        </VirtualHost>
</IfModule>

检测配置

上面内容配置了就基本差不多了,使用命令service apache2 restart或者service apache2 reload重启/重新载入服务。然后https访问一下自己的域名。如果浏览器地址栏出现了安全锁,则表示配置成功。下图为成功示范。
在这里插入图片描述
如果访问出现异常,可以尝试做以下检查。

1. 自己的ssl证书路径是否配置错了。
2. a2ensite default-ssl.conf 应用一下ssl配置
3. 443端口阿里云后台安全组有没有放行
配置Http跳转

如果需要http自动跳转到https,可以做如下配置。

a2enmod rewrite #开启重定向模块

vim /etc/apache2/sites-available/000-default.conf,做如下三行配置。

<VirtualHost *:80>
    RewriteEngine on
    RewriteCond   %{HTTPS} !=on
    RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]
   ...
</VirtualHost>

结尾

今天的内容就分享到这里,如果配置过程出现了问题 欢迎评论区留言或者私信我,一起来解决。如果有帮助到您给个关注吧,更多精彩即将到来。

posted on   黑夜开发者  阅读(236)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示