CentOS7 Nginx配置https
1.SSL證書申請
申請百度雲的免費證書
百度雲上提供一年的免費證書。
登錄百度雲控制檯。
選擇SSL證書服務。
選擇一年免費的SSL證書。
需要對域名進行驗證。
添加DNS的TXT記錄
添加TXT記錄到域名解析服務器上。
域名生效以後,可以看到證書管理中出現證書。
在已購證書列表中,可以查看證書。
下載證書
在查看證書界面下載證書:
注意:如果點擊“證書下載”沒有反應,則直接取接口返回地址訪問下載證書文件。
2.上傳證書到服務器
這裏上傳證書到服務器 /opt/software/nginx/key/
目錄下。
img.jeiker.crt; #(證書公鑰)
img.jeiker.key; #(證書私鑰)
3.Nginx重新編譯添加ssl模塊
查看Nginx版本及其編譯參數
./nginx -V
如果沒有 http_ssl_module 模塊,則需要重新編譯添加。
如果有 http_ssl_module 模塊,則直接進入下一步,Nginx配置。
測試新的nginx程序是否正確
./nginx -t
如果顯示如下說明成功,否則失敗:
nginx: theconfiguration file /opt/software/nginx/conf/nginx.conf syntax is ok
nginx:configuration file /opt/software/nginx/conf/nginx.conf test issuccessful
查看模塊是否加入成功
./nginx -V
nginx version: nginx/1.4.7
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
TLS SNI support enabled
configure arguments: --prefix=/opt/software/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-http_realip_module --with-http_image_filter_module --add-module=../nginx_tcp_proxy_module-master/
每個模塊前都有空格。
4.Nginx配置ssl加密
修改Nginx 配置
這裏是HTTP/HTTPS混合服務器配置
server {
listen 80;
listen 443 ssl;
server_name img.jeiker.com;
ssl_certificate /opt/software/nginx/key/img.jeiker.crt;
ssl_certificate_key /opt/software/nginx/key/img.jeiker.key;
}
在 0.7.14 版本之前,在獨立的 server 端口中是不能選擇性開啓 SSL 的。如上面的例子,SSL 只能通過使用 ssl 命令爲單個 server 端口開啓
server {
listen 443;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
# ssl命令開啓 https
ssl on;
#...
}
因此沒有辦法設置 HTTP/HTTPS 混合服務器。於是 Nginx 新增了監聽命令 listen
參數 ssl
來解決這個問題,Nginx 現代版本的ssl命令並不推薦使用。
ssl_certificate 和 ssl_certificate_key 後面的的路徑就是我們ssl證書申請的路徑。
驗證Nginx 配置
./nginx -t
如果顯示如下說明成功,否則失敗:
nginx: theconfiguration file /opt/software/nginx/conf/nginx.conf syntax is ok
nginx:configuration file /opt/software/nginx/conf/nginx.conf test issuccessful
重啓Nginx 配置
./nginx -s reload