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

SSL 全称 Secure Socket Layer 安全套接字层

HTTPS是未来的一个风向标,今天我也把自己网站的云服务器配置了一下HTTPS,毕竟有多用户同时进行交互,安全性还是要保证一下。

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

中间出现了一个配置问题: 无法访问,原因是申请ssl证书的时候是使用域名申请的.但是配置的时候是使用ip配置的.

导致指定证书仅对指定域名有效.对ip无效

推荐更优方案:
https://oneinstack.com/
https://letsencrypt.org

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

传统Http协议中数据以明文进行传递,用户隐私存在被窃听、篡改、冒充的风险,而Https在Http的基础上加入SSL (Secure Socket Layer)协议,SSL验证服务器身份,并为浏览器和服务器之间的通信加密,使数据传输安全性得到质的提升。实现Https首先需要向国际公认的证书证书认证机构(简称CA,Certificate Authority)申请SSL证书。但也正是由于其申请流程过于复杂,并且价格昂贵,在很长一段时间内并没有被普及。
近日,腾讯云与GeoTrust合作推出免费DV SSL(域名型) CA – G3证书,并且在一定程度上简化了申请流程,只需填入需要申请证书的域名、验证域名所有权,两步即可完成申请,笔者对此抱着怀疑的态度试着申请了一下,最后成功申请并且安装至服务器,中间也遇到一些棘手的问题,具体是什么问题?在这里卖个关子,先附上笔者申请的过程截图:

申请地址:https://console.qcloud.com/ssl

申请证书:

img

手动DNS验证(域名验证)

通过解析指定的DNS记录验证您的域名所有权,指定如主机记录 –> TXT记录类型 –> 记录值的解析格式。

例如为申请证书的域名 www.domain.com 添加一条记录类型为TXT的DNS记录,www.domain.com –> TXT –> 201704262209564gw0...hj37i4xai8m7uii2a23l

img

以腾讯云云解析平台为例说明如何进行操作:

添加域名

点击【添加域名】,输入您要解析域名的主域名domain.com,并点【确定】

img

添加解析记录

点击刚添加的域名【解析】

img

点击【添加记录】

img

1.3 完成指定的TXT记录添加

TXT记录是对域名进行标识和说明的一种方式:

  • 记录类型选择为TXT
  • 主机记录根据证书详情填入,如:_dnsauth
  • 线路类型选择默认
  • 记录值为系统提供的文本内容,此处为201712270743...t5bfctnq,注意记录值须完整填写
  • TTL选择默认值10分钟即可
    img
    img

解析添加成功后如下:
img

www.domain.com TXT记录值的系统会定时检查,若能检测到并且与指定的值匹配,即可完成域名所有权验证。

申请通过:

img

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

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

img

包括了三个主流的HTTP服务器,我选用的是Apache下的证书文件apache.crt 和私匙apache.key

/etc/apache2/ 下新建一个ssl 文件夹,把这两个文件扔进去。

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

如果未安装则执行:

sudo apt-get install openssl   
--安装OpenSSL

img

Setp4:加载Apache的SSL模块

​ 使用命令

sudo a2enmod ssl
service apache2 restart

img

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

Setp5:安装下载的CA证书

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

img

我们需要修改的是:

前五行改成上图
并把ServerAdmin下一行删掉

 
找到SSLEngine,SSLCertificateFile,SSLCertificateKeyFile并修改成以下内容

    SSLEngine on

    SSLCertificateFile /etc/apache2/SSL/2_www.liupeng.mobi.crt

    SSLCertificateKeyFile /etc/apache2/SSL/3_www.liupeng.mobi.key

    SSLCertificateChainFile /etc/SSL/Apache/1_root_bundle.crt 

上面倒数三行当然要写你自己的证书文件名  

SSL证书配置完毕,保存退出。

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也会做相应的修改,显然前者就是实际的配置文件.

 

 

原文转载于:https://www.liupeng.mobi/archives/350

稍有改动

感谢原文作者

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值