nginx配置https
在配置ssl證書之前,要確保你的nginx已經安裝了ssl模組,一般情況下自己安裝的nginx都是不存在ssl模組的。
如果你是用yum安裝的一般都會有。
檢視 nginx 是否安裝 http_ssl_module 模組。
$ /usr/local/nginx/sbin/nginx -V
如果出現 configure arguments: --with-http_ssl_module, 則已安裝(下面的步驟可以跳過,進入 nginx.conf 配置)。
下載 nginx 安裝包, nginx官網1.14.1穩定版本tar.gz包。
# 下載安裝包到 src 目錄
$ cd /usr/local/src
$ wget http://nginx.org/download/nginx-1.14.1.tar.gz
解壓安裝包。
$ tar -zxvf nginx-1.14.1.tar.gz
配置 ssl 模組。
$ cd nginx-1.14.1
$ ./configure --prefix=/usr/local/nginx --with-http_ssl_module
使用 make 命令編譯(使用make install會重新安裝nginx),此時當前目錄會出現 objs 資料夾。
用新的 nginx 檔案覆蓋當前的 nginx 檔案。
$ cp ./objs/nginx /usr/local/nginx/sbin/
再次檢視安裝的模組(configure arguments: --with-http_ssl_module說明ssl模組已安裝)。
$ /usr/local/nginx/sbin/nginx -V
建立一個crt目錄最好在nginx同級目錄下
我的目錄是/etc/nginx/conf.d/crt/
nginx.conf配置檔案進行的配置
server
{
listen 80;
server_name 你的域名如:wwwbaidu.com;
return 301 https://$host$request_uri;
}
server
{
listen 443;
server_name #域名如:www.baidu.com;
underscores_in_headers on;
ssl on;
ssl_certificate /etc/nginx/conf.d/crt/證書.pem
ssl_certificate_key /etc/nginx/conf.d/crt/證書.key
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#下方是反向帶理可以不看
location / {
proxy_connect_timeout 600;
proxy_read_timeout 600;
client_max_body_size 100m;
# proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.17.210.23:8041;
}
access_log /var/log/nginx/jira-53cto-com.log;
}