1.nginx的ssl
讓nginx實現用https來訪問網站,http是80端口,https是443端口。
https其實就是一種加密的http
2.為什么要加密
例子:在網上銀行匯款,在你匯款的過程當中,你會輸入銀行卡的密碼,如果不加密,這些數據傳輸的過程中就有可能被人截獲,破解。
如果你使用了https,數據在傳輸的過程中是會加密的。即使抓到了數據包,但是無法破解出來。
知識:
http(1.1版本) http 2(https)
3.0 怎么配置ssl?
首先得看你是yum安裝的nginx還是編譯安裝的nginx
3.1yum安裝nginx已經有參數--with-http_ssl_module
nginx -V ##查看參數
3.2 編譯安裝查看是否有--with-http_ssl_module (我選擇的是編碼編譯安裝的nginx)
/usr/local/nginx/sbin/nginx -V
3.3如果沒有重新編譯。進入nginx解壓的目錄
# cd /usr/local/src/nginx-1.17.0/
3.4 重新配置新的編譯參數
# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
3.5 運行上面命令即可,等待配置,運行命令
# make
注:不用make install安裝,不然會覆蓋安裝
3.6 停止nginx
# /etc/init.d/nginx stop
3.7 把剛剛編譯好的nginx覆蓋原有的nginx
# cp ./objs/nginx /usr/local/nginx/sbin/
3.8 查看編譯的參數是否生效
# /usr/local/nginx/sbin/nginx -V
4.0 如何獲取ssl證書?
申請證書:
網站:(沃通)
免費的:freessl.cn
這里拿的是免費的證書
進入freessl.cn首先注冊 然后輸入域名申請開通,這個過程需要去添加TXT記錄來證明網站是你的。
會給你一個TXT的記錄
然后在你的域名解析中添加
回到freessl.cn點擊驗證會給你CA證書,證書,秘鑰
這時候回到linux 創建ssl的目錄
# mkdir /usr/local/nginx/conf/ssl/
進入ssl目錄
vim CA 添加瀏覽器生成的CA證書
編輯證書文件
# vim bbs.crt 復制粘貼證
編輯私鑰文件
# vim bbs.key 復制粘貼私鑰
配置conf配置文件
server { listen 443 ssl; index index.html index.htm index.php; root /data/wwwroot/bbs.centos.com; server_name bbs.centos.com; ssl_certificate /usr/local/nginx/conf/ssl/bbs.crt; ssl_certificate_key /usr/local/nginx/conf/ssl/bbs.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
檢測語法重載配置
# /usr/local/nginx/sbin/nginx -t # /usr/local/nginx/sbin/nginx -s reload
另外也可以配置成
server { listen 443; index index.html index.htm index.php; root /data/wwwroot/bbs.centos.com; server_name bbs.centos.com; ssl on; ssl_certificate /usr/local/nginx/conf/ssl/bbs.crt; ssl_certificate_key /usr/local/nginx/conf/ssl/bbs.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
重啟nginx
# /etc/init.d/nginx restart
查看監聽端口
# netstat -lntp
5.0 配置好了可以訪問但是centos有防火牆還需要開放443端口
# firewall-cmd --add-port=443/tcp --permanent ##永久放行443端口 # firewall-cmd -reload #重載
現在訪問域名上效果圖