Apache2.4安装SSL证书教程(基于ubuntu 16.04)

本文详细介绍了如何在Ubuntu16.04系统上配置Apache2.4服务器以支持HTTPS,包括从证书提供商获取CA证书、配置Apache加载SSL模块及重定向设置等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  HTTPS是未来的一个风向标,今天我也把自己网站的云服务器配置了一下HTTPS,毕竟有多用户同时进行交互,安全性还是要保证一下。找了很多资料,也试了蛮久才弄出来,在此做个记录把。我还是比较喜欢折腾的哈哈,看到成功的那一刹那还是蛮兴奋的。

  我的云服务器在校园网内,运行Ubuntu 16.04系统,Apache2.4作为网站服务器,要实现的目标是,无论用户是从HTTP还是HTTPS进入,都自动重定向至HTTPS。

  我的思路是这样的:1、从证书提供商获取CA证书

                                   2、开启Ubuntu的OpenSSL,并使Apache加载SSL模块

                                   3、配置conf文件,安装CA证书

                                   4、加载Apache的ReWrite模式

                                   5、增加.htaccess文件,同时配置Apache2.conf使其生效


Step1:到证书提供商申请CA证书,我是通过腾讯云,证书提供商为TrustAsia,申请年限为1年,免费的,提交申请之后,大约5分钟后会收到成功邮件,此时,可从腾讯云的控制台下载CA证书。其他证书提供商的操作要根据具体实际情况。

Setp2:我下载下来的CA证书压缩包是这样的

                      

包括了三个主流的HTTP服务器,我选用的是Apache,解压,我把它们放在/usr/local/ssl文件夹下

Setp3:加载OpenSSL模块,终端输入openssl,如果见到下图这样,就说明已经安装了。

                             

Setp4:加载Apache的SSL模块

             使用命令sudo a2enmod ssl

                       

注:我是已经加载过的,第一次时候,会提示重启Apache

Setp5:安装下载的CA证书

   Apache加载SSL模块后,会在/etc/apache2/sites-available下生成default-ssl.conf文件,我们在终端使用sudo权限,通过vi编辑器打开

   

   我们需要修改的是:

以下所有

www.domain.com替换成自己的域名  

/usr/local/apache/conf/更换成自己安放证书的位置

2_www.domain.com_cert.crt等更换成自己证书提供商的crt或者key文件,具体可查提供商文档,这里以腾讯云为例

1、第一个VirtualHost标签www.domain.com:443

2、ServerName www.domain.com

3、SSLCertificateFile /usr/local/apache/conf/2_www.domain.com_cert.crt

4、 SSLCertificateKeyFile /usr/local/apache/conf/3_www.domain.com.key

5、SSLCertificateChainFile /usr/local/apache/conf/1_root_bundle.crt

更改完成后:wq保存退出

Step6:把default-ssl.conf映射至/etc/apache2/sites-enabled文件夹

我按:之前没有设置这个的时候,重新加载配置文件并重启Apache后,浏览器一直报错,提示无法与服务器建立安全连接,而我尝试了其他没有安装证书的域名,是一直在加载中的状态,看来证书是有起作用的。后来抱了抱度娘的大腿,发现要做这个方面的映射,其实这个映射叫做链接,是Linux中文件链接中的一个分支,分为硬链接和软链接。转念一想available是可用的意思,而enabled是已启用,已应用的意思,可用并不代表已启用啊!这个链接是必须的!

使用命令sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf 进行建立软链接操作。执行此操作后,sites-available/default-ssl.conf与sites-enabled/001-ssl.conf就已经建立了软链接关系,只要sites.available/default-ssl.conf做了修改之后sites-enabled/001-ssl.conf也会做相应的修改,显然前者就是实际的配置文件。Linux中的软链接就有点像Windows系统中的快捷方式,通过sites-enabled/001-ssl.conf就能访问sites-available/001-ssl.conf

重新加载Apache配置文件:sudo /etc/init.d/apache2 force-reload

重启Apache服务:sudo /etc/init.d/apache2 restart

Setp7:现在就可以做一个小小的测试了。浏览器输入https://www.domain.com是不是能连通了呢?看来,在加载SSL模块的同时,也自动放行了443端口,如果没有的话,可以手动设置一下

接下来我们来处理无论是HTTP还是HTTPS都强制定向为HTTPS

使用命令:sudo a2enmod rewrite加载Apache的rewrite模块

加载完成后,使用sudo权限,vi打开Apache2.conf,找到如下

                   

这里是你网站的根目录(视情况而定),原来是AllowOverride None,也就是不允许重定向,这个时候,.htaccess不会起到任何作用,现在我们改成ALL

Setp8:进入你的网站根目录,使用命令touch .htaccess来创建.htaccess文件,这个文件很奇怪,与Windows不同,在Linux下是看不到的,所以不要以为没有创建哦

使用vi编辑器对其修改

输入如下内容:

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

主要还是正则,这个我也没搞太明白QAQ,不过我们可以把RewriteRule(重定向规则)进行修改,我把它改成了自己的网站,就是https://后面的,怕SERVER_NAME没设置什么的,保险一些。

重新加载Apache配置,重启Apache2,一切搞定!

附注:今天再次部署SSL证书的时候,Chrome浏览器报出了【此网站不能提供安全链接】的问题,折腾了我一整天,度娘靠不住,直接Google了,国外一位网友说可以将/etc/apache2/sites-enabled/001-ssl.conf中的第一行改为

<VirtualHost *:443 

即从上面说的域名,变为了*,再次测试,解决!

### Ubuntu 16.04 安装配置使用指南 #### MySQL 的安装与配置 对于希望在 Ubuntu 16.04 上部署数据库服务的用户来说,MySQL 是一种流行的选择。为了成功完成这一过程,需要具备一个已经过初步服务器设置向导配置好的 Ubuntu 16.04 服务器环境,该环境中应有一个具有 `sudo` 权限的非管理员账户以及已启用的防火墙功能[^1]。 一旦满足上述前提条件,则可以通过执行一系列命令来启动 MySQL 数据库系统的安装流程: ```bash sudo apt-get update sudo apt-get install mysql-server ``` 这组指令会更新本地包索引并下载最新的 MySQL 版本到系统中。安装过程中可能会提示创建 root 用户密码等安全选项,请根据屏幕上的指示进行操作。 #### C语言编译器 GCC 的安装 针对开发者而言,在 Ubuntu 16.04 中建立 C/C++ 开发环境同样重要。通过简单的几步即可获得必要的工具链支持,特别是 GNU Compiler Collection (GCC),它是广泛使用的开源编译套件之一。只需运行如下命令就能轻松搞定: ```bash sudo apt-get update sudo apt-get install build-essential ``` 这里提到的 `build-essential` 实际上是一个元软件包,它包含了构建大多数项目所需的基础组件集合,其中包括但不限于 GCC 编译器本身及其依赖项[^2]。 #### Apache HTTP Server 的定制化安装 当涉及到 Web 应用程序托管时,Apache 成为许多人的首选解决方案。如果打算手动编译而非直接从官方仓库获取二进制文件的话,那么就需要更详细的参数设定以适应特定需求。下面给出了一种可能的方式来进行这样的自定义安装: ```bash ./configure \ --prefix=/usr/local/apache2 \ --with-apr=/usr/local/apache2/apr-1.6.2 \ --with-apr-util=/usr/local/apache2/apr-util-1.6.0/ \ --with-pcre=/usr/local/pcre-8.41 \ --with-expat=builtin \ --enable-so \ --enable-rewrite \ --enable-ssl make && sudo make install ``` 这段脚本指定了多个路径和特性开关用于指导源码编译过程中的行为模式,比如指定 APR 和 APR-Util 的位置、内嵌 Expat 解析器的支持情况等等;同时也启用了共享模块加载(`so`)、URL重写(`rewrite`)SSL/TLS 加密传输等功能特性。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值