基于SSL的Apache服务器上自制证书的加密网站分析

2020-02-22 03:10徐红梅
现代信息科技 2020年17期
关键词:证书

摘  要:网站发布中HTTP访问网站的安全性能不高,无法保证数据传输的安全性,更多的网站采用HTTPS访问网页,使用Apache服务器中提供的mod_ssl模块,文章提出了一种强加密方式,通过自制证书实现身份认证,可以有效防止目前的网站发布时出现数据泄漏或劫持等安全问题,确保数据在网络中传输的正确性,从而提高发布网站的安全性。

关键词:HTTPS;证书;SSL;Apache

中图分类号:TP309.7      文献标识码:A 文章编号:2096-4706(2020)17-0136-03

Abstract:In the process of browsing published webpage,the security performance of using HTTP to access webpage is not high,and the security of data transmission can not be guaranteed. In order to improve security,more webpage use HTTPS to access webpage. And mod_ssl module provided by Apache server is used,this paper proposes a strong encryption method by using self-made certificate to realize identity authentication,it can effectively prevent the security problems such as data leakage or hijacking when the current website is published,ensure the correctness of data transmission in the network,and thus improve the security of the published webpage.

Keywords:HTTPS;certificate;SSL;Apache

0  引  言

Apache HTTP服务器模块mod_ssl提供了与OpenSSL的接口,它使用安全套接字层和传输层安全协议(SSL/TLS)提供了强加密。使用mod_ssl模块之后,Apache可以支持HTTPS协议,可以基于SSL/TLS通过服务器证书实现对HTTP协议的加密,并且可以通过用户证书实现身份认证。在传输层上,为了确保服务器上的数据传输的有效性、正确性,防止中间节点的信息获取、信息泄漏等,通过HTTPS加密和SSL认证机制提供的数据传输加密相结合,在传输过程中保证了数据的完整性,并增加了服务器身份认证功能这种强加密方式,有效防止了目前常见的安全事件的发生,例如数据泄漏、流量劫持、钓鱼网站欺诈事件等。

由于一般书籍没有给出自制证书的操作方法,本文根据作者多年从事Linux网络服务器教学的研究和实践,从实验的角度介绍了证书在网络中实现认证的原理和自制证书的关键技术。

1  加密网站与非加密网站

1.1  加密网站和非加密网站的说明

以明码传送数据的HTTP所建立的网站属于非加密网站,采用明码传输的数据安全性无法得到保障,而HTTPS才是加密传输。在Apache服务器上建立网站的加密方法可以通过SSL加密实现,SSL具备了保护信息的保密性、完整性、不可否认性等安全特征,从而保证了主机之间的通信免遭窃听、篡改和伪造。网站页面没有HTTPS会增加页面会话劫持的风险,特别是在公共的未加密的网络连接下。HTTPS对网站速度并没有明显的影响,甚至速度会更快,另外,还可以通过升级处理器来处理SSL加密的额外工作。

1.2  配置Apache基于域名的SSL虚拟主机

一般的,一个证书DN(Distinguished Name)中包含一个唯一的CN(Common Name),当证书CN与Apache所配置的SSL虚拟主机域名一致时,才能访问此虚拟主机。在HTTPS协议流过程中,服务器首先要与客户端之间进行服务器验证并协议安全会话,然后客户端向服务器发送HTTP请求。因此,在客户端开始发送HTTP请求之前,服务器就已经把证书发给了客户端,若SSL协商之后客户端发送的host:请求头中的域名与SSL协商过程发来的证书CN一致,则基于该域名的HTTPS站点可被访问,否则不能被访问。要实现让Apache支持HTTPS协议,必须要有mod_ssl模块,以下是安装mod_ssl模块操作命令。

[root@localhost ~]# yum install mod_ssl  #安裝mod_ssl模块

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com

* updates: mirrors.aliyun.com

正在解决依赖关系

--> 正在检查事务

---> 软件包 mod_ssl.x86_64.1.2.4.6-93.el7.centos 将被 安装

以IP地址10.0.2.15,默认的本地域名为例,如图1所示,默认的证书安装好后,在第一次启动时,打开网站会出现一个证书文件配置,默认的证书有效期限是1年。这就是默认的SSL网站,你的重要信息可以放在这里,让数据在网络上传输得更加安全。图2为未进行加密的使用HTTP访问的网站,提示连接不安全。

2  建立自制证书的HTTPS

2.1  建立证书文件

默认的证书虽然可以让你顺利使用HTTPS,但只有1年的有效时间,为此我们可以自制证书,这个证书的制作仅用私有www网站的用途,没有去CA认证(Certificate Authority)注册。下面操作是以IP地址10.0.2.15,更改域名www.example.com为例实现自制证书的流程步骤:

(1)首先要建立一把PrivateKey预备提供给SSL证书签章要求所用。先到/etc/pki/TLS/certs/中去建立一把Apache使用的私钥文件。

[root@localhost ~]# cd /etc/pki/tls/certs  #在此目录下建立一把Apache使用的私钥文件

[root@localhost certs]# make testcal.key  #编译私钥文件

umask 77 ; \

/usr/bin/openssl genrsa -aes128 2048 > testcal.key

Generating RSA private key, 2048 bit long modulus

...................................+++

...+++

e is 65537 (0x10001)

Enter pass phrase:                      #设置私钥密码

Verifying - Enter pass phrase:             #确认二次输入私钥密码

[root@localhost certs]#

(2)其次,将刚刚建立的文件中的密码取消掉,不要有密码存在。

[root@localhost certs]# mv testcal.key testal.key.raw

[root@localhost certs]# openssl rsa -in testal.key.raw -out testcal.key

Enter pass phrase for testal.key.raw:          #输入配置的之前私钥密码

writing RSA key

[root@localhost certs]# rm -f testal.key.raw    #删除旧密钥文件

[root@localhost certs]# chmod 400 testcal.key  #设置密钥权限为400,且一定要为400

(3)SSL自制证书,建立所需要的最终证书文件。

[root@localhost certs]# make testcal.crt serial=2020090701   #建立证书生效起始时间序列好

umask 77 ; \

/usr/bin/openssl req -utf8 -new -key testcal.key -x509 -days 365 -out testcal.crt

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [XX]:CN                 #國家名缩写

State or Province Name (full name) []:SICHUAN         #省市名

Locality Name (eg, city) [Default City]:SICHUAN

Organization Name (eg, company) [Default Company Ltd]:KSU# 证书发布的组织

Organizational Unit Name (eg, section) []:DIC              #证书发布的组织单位

Common Name (eg, your name or your server's hostname) []:www.example.com  #服务器的主机名,这个是关键,需要填写正确的主机名否则不能访问

Email Address []:xxhm97@qq.com   #邮件地址

这样,CA证书制作完成。在keys目录下,名字就叫testcal.crt;CA的私钥是testcal.key,可以使用ll命令查看证书。

[root@localhost certs]# ll testcal*  #查看设置的证书

-rw-------. 1 root root 1403 9月  14 09:43 testcal.crt  #最终的证书文件

-r--------. 1 root root 1675 9月  14 09:36 testcal.key  #系統私钥文件

2.2  修改SSL.conf使用自制证书

当建立好证书文件后,如果你想要修改证书年限,修改certs目录下的makefile里面的内容,把365天改大,例如改成3 000天,需要处理SSL.conf的内容。

[root@localhost certs]# vim /etc/HTTPd/conf.d/SSL.conf

将语句:

SSLCertificateFile /etc/pki/TLS/certs/localhost.crt

修改为:

SSLCertificateFile /etc/pki/TLS/certs/testca.crt

将语句:

SSLCertificateKeyFile /etc/pki/TLS/private/localhost.key

修改为:

SSLCertificateKeyFile /etc/pki/TLS/certs/testca.key

保存后,重启Apache服务器,然后使用HTTPS://的网址,就能查阅刚建立的证书数据,在查阅前,需将缓存内容清除,保证新的证书的显示内容如图3所示。

2.3  将加密首页和非加密首页相分离

虽然加密首页和非加密首页是相同的,用户在使用时认为没什么区别,但作为网页的发布方,为了数据的安全性,可以强制用户使用HTTPS://IP地址这种方式查阅重要的数据。在SSL模块中默认提供此功能,只要将HTTP://与HTTPS://的首页分离即可。我们所要做的是在一般明码传输网页首页不变更的情况下,把HTTPS://的首页放置在/var/www/HTTPS/目录下,另外将SSL.conf内容中的documentroot项修改成“/var/www/HTTPS”即可。已加密的安全连接的HTTPS网页测试页面如图4所示。

3  结  论

在Windows环境下或者在Linux图形环境下,不管使用何种浏览器,由于证书是自签名证书,都会显示证书不可信信息;在测试环境中,可以添加对此证书的额外信任从而浏览站点内容。通过自制证书的解决策略,可以了解加密网站的生成方式,对发布和管理网站起到一定的作用。为了保证各企业数据信息通过网站安全地接入互联网,在防护措施上可以考虑使用HTTPS和SSL加密保护方式发布网页,完善对用户重要的数据平台、网站等,保障用户隐私数据。

参考文献:

[1] 梁如军,王宇昕,车亚军,等.Linux基础及应用教程(基于CentOS7):第2版 [M].北京:机械工业出版社,2016.

[2] 鸟哥.鸟哥的Linux私房菜:服务器架设篇:第3版 [M].北京:机械工业出版社,2012.

[3] 杨云,马立新.网络服务器搭建、配置与管理——Linux版 [M].北京:人民邮电出版社,2011.

[4] 余柏山.Linux系统管理与网络管理:第2版 [M].北京:清华大学出版社,2014.

[5] 贾铁军,蒋建军.网络安全技术及应用实践教程:第3版 [M].北京:机械工业出版社,2018.

[6] 何玲.SSL VPN系统的研究及在校园网中的应用 [D].天津:天津大学,2007.

作者简介:徐红梅(1977—),女,汉族,北京人,副教授,硕士,研究方向:网络技术。

猜你喜欢
证书
少就是多
诺贝尔获奖证书
天津企业享受原产地证书关税减免1.1亿美元
两面夹击 让恶意证书无处遁形
假证