申請免費https證書及nginx相關配置

weixin_34413065發表於2018-06-27

標籤: 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.d
vi 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

相關文章