标签: https、centos7、nginx、安全评估
内容目录
[TOC]
1、https和ssl证书相关知识
通常所说的 HTTPS 协议,就是“HTTP 协议”和“SSL/TLS 协议”的组合,“HTTP over SSL”,实际上是在原有的 HTTP 数据外面加了一层 SSL 的封装。HTTP 协议原有的 GET、POST 之类的机制,基本上原封不动。
如果不加https,网络流量需要经过网络运营商( ISP )的线路才能到达公网。如果你使用的是明文的 HTTP,ISP 很容易就可以在你访问的页面中植入广告,所以,当初设计 HTTPS 的时候,还有一个需求是“确保 HTTP 协议的内容不被篡改”。
2、申请免费的ssl证书
1、腾讯云申请证书
腾讯云提供一年的免费ssl证书,入口:腾讯云 -> ssl证书管理 -> 申请证书
image_1ch05tlhep9u10hu1juofpc679.png-44.3kB
需注意:从2018年1月1日起,同一主域最多只能申请20张亚洲诚信品牌免费型DV版SSL证书(一级域名及其子域名均属于同一主域,例如 domain.com、ssl.domain.com、ssl.ssl.domain.com 都属于同一主域)
2、手动DNS验证
image_1ch068c6l11ebed98bcelid0s13.png-18.5kB
这里选择手动DNS验证,确认申请
image_1ch06a3a218f3aekp0fqj117d21g.png-9.8kB
查看证书详情如下:
image_1ch06cgais181a731gj4kuspg32d.png-26.6kB
切到阿里云平台 -> 云解析DNS
按照上图证书详情在阿里云域名解析处添加如下一条记录:
image_1ch0b1forl6751pnehuqu1k1i9.png-7.8kB
详情如下:
image_1ch0bg0f2160q1jmpo8l1t2rghsm.png-31.5kB
返回腾讯云 -> ssl控制台
image_1ch0bjjd140ns12vo9aln11sl1j.png-22.7kB
只要阿里云那边解析成功,腾讯云这边就自动成功,有时候需要等待10分钟左右。
验证成功如图:
image_1ch0boh418gvogg13221ce386e20.png-10.5kB
点击右侧下载证书
3、Nginx配置
1、centos7系统下安装nginx
yum install -y nginx
利用yum安装nginx,如果出现No package nginx available,说明当前yum源缺少nginx资源,需要添加CentOS 7 Nginx yum资源库。
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
然后再yum install,等待安装。
启动nginx:
systemctl start nginx.service
centos7 开机自动启动
systemctl enable nginx.service
2、nginx配置信息
网站文件存放默认目录:
/usr/share/nginx/html
网站默认站点配置:
/etc/nginx/conf.d/default.conf
自定义Nginx站点配置文件存放目录:
/etc/nginx/conf.d/
Nginx全局配置:
/etc/nginx/nginx.conf
查看当前服务器公网ip:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
3、nginx页面不能正常访问排除方法
1、检查服务端服务是否启动成功
查看nginx服务是否启动
image_1ch4q5j7ifsr14nl313qv1b099.png-7.4kB
检查80端口是否在监听状态
image_1ch4q79rg1grlpef13lo1fohb7um.png-3.6kB
2、在服务端使用wget和curl测试下返回的是否正常
curl 127.0.0.1
image_1ch4qkart2gv1lv21m2i16l0r2213.png-21.7kB
出现这个说明服务端的nginx安装正确。
3、如果还是访问不了,检查服务器防火墙
systemctl status firewalld
image_1ch4qqave13rruc4thhk3s17eb1g.png-7.8kB
firewall-cmd --zone=public --list-ports
image_1ch4qs6e416ln1set1ivj17b1191o1t.png-3.7kB
如果80端口没有开启,则开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
更新防火墙规则: firewall-cmd --reload
出现以下页面说明nginx安装好了。
image_1ch4r14uhp5h1b131qpa1vek141n2a.png-21kB
4、centos7配置FTP服务
1、客户端filezilla
站点管理器 - 新站点
image_1ch53vgvouek1mp810p21o761sal2n.png-37.8kB
2、服务器开启ftp服务(centos7)
安装vsftpd
yum install vsftpd -y
启动vsftpd
service vsftpd start
加入开机启动
chkconfig vsftpd on
启动后可以看到系统正在监听21端口
netstat -nltp | grep 21
vsftpd的文件说明
vsftpd.conf:主要配置文件
ftpusers:配置禁止访问ftp服务器的用户列表
user_list:配置用户访问控制
配置阻止匿名用户访问和切换根目录
vi /etc/vsftpd/vsftp.conf
找到以下两处修改
禁止匿名用户
anonymous_enable=NO
文件末尾添加
allow_writeable_chroot=YES
创建ftp用户
useradd ftpuser
为用户设置密码
echo "xxx" | passwd ftpuser --stdin
限制上步创建的用户只能通过ftp访问
usermod -s /sbin/nologin ftpuser
为用户分配主目录
mkdir -p /home/ftp/pub
创建欢迎文件
echo "welcome to use ftp">/home/ftp/welcome.txt
设置访问权限
chmod a-w /home/ftp && chmod 777 -R /home/ftp/pub
设置为用户主目录
usermod -d /home/ftp ftpuser
保存后重启vsftpd
service vsftpd restart
防火墙开启21端口,如上
如图即成功:
image_1ch54km4d1hrs42dhfn1p8b1hj64j.png-6.6kB
5、Nginx配置https
1、将证书导入服务器
用ftp将nginx的两个证书文件上传倒服务器
image_1ch55ikba1ft6hp81dv95gvbfb50.png-4.7kB
2、修改nginx配置
cd /etc/nginx/
image_1ch5f8ma11s6h1sjd10c4ba1epd5d.png-4.1kB
两个配置文件,1是nginx.conf,即总配置文件,文件中最后一行指向自定义配置文件*.conf
image_1ch5fbhbn1vjrnm91tj0ve04lm5q.png-19.8kB
cd conf.dvi default.conf
在自定义配置文件中做nginx-server的配置:
image_1ch5fensb2h61oh61mcb2vnlb67.png-20.9kB
如箭头所示,rewrite将80转发倒443端口,443端口监听,开启https
crt和key即之前传上来的两个文件,路径不能错。
root后的路径也不能错,否则找不到文件。
配置完成之后一定要重启nginx
nginx -s reload 或 systemctl restart nginx
最后一定要查看防火墙是否开启了443端口
image_1ch5fnv5d1pf3d7p61t9m919o874.png-3.6kB
3、SSL配置优化,启用http2
HTTP2在协议上真正要求不同的Request可以在同一个Connection上交错进行,真正做到多路复用。所带来的好处显而易见,更少的Connection,更好的并发,更高效的网络资源利用.
修改配置文件,启用HTTP2,如下:
server {
listen 8443 ssl http2 default_server; # 增加 http2 default_server
server_name 192.168.0.107;
...
}
4、安全评估报告
测试地址:https://myssl.com/
对证书信息,协议套件,SSL漏洞,兼容性都会进行测试并评级
image_1ch5hr1fb1oqu1l291ciocl54fn7h.png-35.9kB
可优化:去掉TLS1.0,
降级原因:没有优先使用FS系列加密套件,降级为B
用推荐的加密套件,查询地址:https://cipherli.st/
选用nginx相对应的加密套件:
image_1ch5hv4e114pl1jnud114b21b007u.png-8.5kB
再进行域名评估:
image_1ch5i0ef71kkh166g2ds1g6i13qm8b.png-41.6kB
——end
作者:半卷zy
链接:https://www.jianshu.com/p/89652d3118b6