Nginx安裝和證書配置

一  Nginx的安裝
Nginx的安裝依賴於以下三個包,意思就是在安裝Nginx之前首先必須安裝一下的三個包,注意安裝順序如下:
1 SSL功能需要openssl庫,直接通過yum安裝: #yum install openssl
2 gzip模塊需要zlib庫,直接通過yum安裝: #yum install zlib
3 rewrite模塊需要pcre庫,直接通過yum安裝: #yum install pcre
可能有的系統安裝的時候直接安裝了,不用上述安裝
2、安裝Nginx依賴項和Nginx
1 使用yum安裝nginx需要包括Nginx的庫,安裝Nginx的庫
#rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
       可能環境不同可能不需要安裝。
2 使用下面命令安裝nginx
#yum install nginx
3 啓動Nginx
#service nginx start
二  證書下載
去阿里雲下載相關的免費證書。在阿里雲控制檯-產品與服務-安全(雲盾)-SSL 證書(應用安全),點擊購買證書,根據不同的服務器類型下載不同類型的證書。
此次下載的是nginx證書。
三  配置ca證書
1,nginx的安裝目錄爲:/etc/nginx/。進入目錄,增加cert/文件夾,把剛剛下載的兩個文件上傳到cert/文件夾中。
2,在/etc/nginx/sites-enabled/下,增加csales.jiaxxxxx.tv文件。/etc/nginx/sites-enabled/目錄在centos安裝的時候沒有,需要手工創建。在ubuntu進行安裝的時候默認已創建
內容如下:
說明:下面的配置是對443端口和80端口進行監聽,443端口要啓用ssl。
筆者創建了一個csales.jiaxxxxx.tv/的文件夾,專門存放來自這個域名的請求以示區分。
csales.jiaxxxxx.tv/文件夾下增加一個index.html文件,裏面僅僅寫了一行<h1>welcome。
vi  /etc/nginx/sites-enabled/csales.jiaxxxxx.tv  內容如下:
server {
    listen 443;
    server_name csales.jiaxxxxx.tv; // 你的域名,不能解析需要在/etc/hosts文件加入,需要跟您的證書域名一直
    ssl on;
    root /var/www/csales.jiaxxxxx.tv;  // 前臺文件存放文件夾,可改成別的
    index index.html index.htm; // 上面配置的文件夾裏面的index.html
    ssl_certificate  cert/fullchain11.pem; // 改成你的證書的名字
    ssl_certificate_key cert/privkey11.pem; // 你的證書的名字
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        index index.html index.htm;
    }
}
server {
    listen 80;
    server_name csales.jiaxxxxx.tv; // 你的域名
    rewrite ^(.*)$ https://$host$1 permanent; // 把http的域名請求轉成https
}
配置完成後,檢查一下nginx配置文件是否可用,有successful表示可用。
$ nginx -t // 檢查nginx配置文件
配置正確後,重新加載配置文件使配置生效:
$ nginx -s reload // 使配置生效
至此,nginx的https訪問就完成了,並且通過rewrite方式把所有http請求也轉成了https請求,更加安全。
如需重啓nginx,用以下命令:
$ service nginx stop // 停止
$ service nginx start // 啓動
$ service nginx restart // 重啓
四,測試效果
輸入http://csales.jiaxxxxx.tv;/也會自動跳轉至https頁面。
五 Nginx報錯處理
Nginx報錯403 forbidden (13: Permission denied)的解決辦法
查看/var/log/nginx/error.log日誌顯示:xxx 403 forbidden (13: Permission denied)錯誤。
引起nginx 403 forbidden通常是三種情況:一是缺少索引文件,二是權限問題,三是SELinux狀態。
1、缺少index.html或者index.php文件,就是配置文件中index index.html index.htm這行中的指定的文件。
如果在/var/www/csales.jiaxxxxx.tv下面沒有index.php,index.html的時候,直接訪問域名,找不到文件,會報403 forbidden。
2、權限問題,如果nginx沒有web目錄的操作權限,也會出現403錯誤。
解決辦法:修改web目錄的讀寫權限,或者是把nginx的啓動用戶改成目錄的所屬用戶,重啓Nginx即可解決
chmod -R 755 / var/www/csales.jiaxxxxx.tv
3、SELinux設置爲開啓狀態(enabled)的原因
首先查看本機SELinux的開啓狀態,如果SELinux status參數爲enabled即爲開啓狀態
/usr/sbin/sestatus -v
或者使用getenforce命令檢查,找到原因了,如何關閉 SELinux 呢
臨時關閉(不用重啓)
setenforce 0
修改配置文件 /etc/ selinux/config,將SELINUX=enforcing改爲SELINUX=disabled
六  其他錯誤
1. 沒有出來您配置的頁面
修改配置文件/etc/nginx/nginx.conf 引入配置文件,增加如下一行
include /etc/nginx/sites-enabled/*;
去掉配置文件nginx.conf中的 server  {   }部分
2   證書到期
證書到期後會出現此網站不安全或者證書到期的提示。進行如下的處理
檢查證書是否到期
 [root@storage01 cert]#  openssl x509 -in fullchain11.pem  -noout -dates
notBefore=Mar  3 15:33:55 2019 GMT  證書開始日期
notAfter=Jun  1 15:33:55 2019 GMT   證書到期日誌
重新生產證書進行替換。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章