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
申请证书:
通过解析指定的DNS记录验证您的域名所有权,指定如主机记录 –> TXT记录类型 –> 记录值
的解析格式。
例如为申请证书的域名 www.domain.com 添加一条记录类型为TXT的DNS记录,www.domain.com –> TXT –> 201704262209564gw0...hj37i4xai8m7uii2a23l
:
以腾讯云云解析平台为例说明如何进行操作:
添加域名
点击【添加域名】,输入您要解析域名的主域名domain.com
,并点【确定】
添加解析记录
点击刚添加的域名【解析】
点击【添加记录】
1.3 完成指定的TXT记录添加
TXT记录是对域名进行标识和说明的一种方式:
_dnsauth
201712270743...t5bfctnq
,注意记录值须完整填写解析添加成功后如下:
www.domain.com TXT记录值的系统会定时检查,若能检测到并且与指定的值匹配,即可完成域名所有权验证。
申请通过:
Step1:到证书提供商申请CA证书,我是通过腾讯云,证书提供商为TrustAsia,申请年限为1年,免费的,提交申请之后,大约5分钟后会收到成功邮件,此时,可从腾讯云的控制台下载CA证书。其他证书提供商的操作要根据具体实际情况。
Setp2:我下载下来的CA证书压缩包是这样的
包括了三个主流的HTTP服务器,我选用的是Apache下的证书文件apache.crt
和私匙apache.key
。
在/etc/apache2/
下新建一个ssl
文件夹,把这两个文件扔进去。
Setp3:加载OpenSSL模块,终端输入openssl,如果见到下图这样,就说明已经安装了。
如果未安装则执行:
sudo apt-get install openssl
--安装OpenSSL
Setp4:加载Apache的SSL模块
使用命令
sudo a2enmod ssl
service apache2 restart
注:我是已经加载过的,第一次时候,会提示重启Apache
Setp5:安装下载的CA证书
Apache加载SSL模块后,会在/etc/apache2/sites-available下生成default-ssl.conf文件,我们在终端使用sudo权限,通过vi编辑器打开
我们需要修改的是:
前五行改成上图
并把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证书配置完毕,保存退出。
我按:之前没有设置这个的时候,重新加载配置文件并重启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也会做相应的修改,显然前者就是实际的配置文件.