一、背景
虽然Nginx比较流行,但是由于一些老项目用到了Apache2来支持Web服务,最近想给服务上一个Https支持,虽然看似教程简单,但是也遇到一些特殊情况,经历了一番折腾也算是解决了所有问题,将过程记录如下。演示是基于Ubantu系统。
二、具体实现
2.1 申请ssl证书
首先为自己的域名申请好ssl证书,这里用到了阿里云的免费证书。下载的时候选择apache的版本。解压后里面包含三个文件,这三个文件后面都要放到服务器上面。
2.2 配置证书
然后登录到服务器上面,进行相应的文件与配置调整,首选是要配置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>
2.3 检测配置
上面内容配置了就基本差不多了,使用命令service apache2 restart
或者service apache2 reload
重启/重新载入服务。然后https访问一下自己的域名。如果浏览器地址栏出现了安全锁
,则表示配置成功。下图为成功示范。
如果访问出现异常,可以尝试做以下检查。
1. 自己的ssl证书路径是否配置错了。
2. a2ensite default-ssl.conf 应用一下ssl配置
3. 443端口阿里云后台安全组有没有放行
2.4 配置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>
三、关于Apache服务器
Apache服务器是一种开源的Web服务器软件,它是由美国Apache软件基金会开发和维护的。Apache服务器是目前最流行的Web服务器软件之一,拥有广泛的用户群体。
Apache服务器具有以下特点:
- 可移植性:Apache服务器可以在多个操作系统上运行,包括Windows、Linux、Unix等。
- 高度可定制化:Apache服务器提供了丰富的模块和插件,用户可以根据自己的需求进行扩展和定制。
- 高性能:Apache服务器采用多线程和多进程的方式处理请求,能够同时处理多个请求,提高并发能力。
- 安全性:Apache服务器支持SSL/TLS加密协议,可以为网站提供安全的HTTPS连接。
- 可靠性:Apache服务器经过多年的发展和测试,已经成为一个非常稳定和可靠的服务器软件。
- 易于配置:Apache服务器的配置文件简单易懂,用户可以通过修改配置文件来进行服务器的设置。
- 兼容性:Apache服务器支持多种Web技术和标准,如PHP、MySQL、HTML、XML等。
总结
今天的内容就分享到这里,如果配置过程出现了问题 欢迎评论区留言或者私信我
,一起来解决。如果有帮助到您给个关注
吧,更多精彩即将到来。