本文主要記錄基於nginx1.19.0添加對SSL(https)證書的支持的主要操作,方便日后需要。
約定:
本次操作目錄設定為/opt/soft/nginx/,也作為當前操作的約定目錄(cd /opt/soft/nginx/)
代理機端口:7222,被代理端口:7111
准備:
依賴庫:yum -y install wget gcc gcc-c++ pcre-devel openssl-devel
中間件:tomcat,jdk>=1.8
代理件:nginx >=1.19.0
一.下載nginx.1.19.0
下載地址:https://nginx.org/en/download.html
二.解壓tar.gz文件到指定的目錄
tar -xzvf nginx-1.19.0.tar.gz
三.默認安裝
cd nginx-1.19.0
#配置
./configure
#編譯
make
#安裝
make install
#備份
cd /usr/local/nginx/sbin
cp nginx nginx-default (備份默認安裝)
四.定制模塊
cd /opt/soft/nginx/nginx-1.19.0/
#配置
./configure --with-http_stub_status_module --with-http_ssl_module --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module
#編譯
make
#准備
cd objs
#復制
cp nginx /usr/local/nginx/sbin/ (根據提示輸入y允許覆蓋)
五.重啟nginx
systemctl stop nginx.service
systemctl start nginx.service
六.證書准備
准備好您從各證書頒發機構平台申請下來的證書,證書最核心的包含了.pfx,證書密碼兩部分信息 ;我們暫定證書名字為123456_www.xx.com.pfx 密碼為123456
七.Tomca配置
7.1jdk.1.8 安裝准備
7.2tomcat 123456_www.xx.com.pfx證書參數配置
7.3tomcat 123456_www.xx.com.pfx證書配置接入
7.4Win10 導入123456_www.xx.com.pfx證書
八.Nginx證書准備
8.1nginx.conf 修改配置
http節點內部底部新增配置 include webconf/*.conf;
8.2新建配置目錄
mkdir webconf
mkdir ssl_certificate
8.3上傳證書到 ssl_certificate
上傳 123456_www.xx.com.pfx 證書
a.導出證書
openssl pkcs12 -in /usr/local/nginx/conf/ssl_certificate/123456_www.xx.com.pfx -out /usr/local/nginx/conf/ssl_certificate/123456_www.xx.com.crt -nodes -nokeys -nokeys
根據提示輸入證書密碼
b.導出私鑰
openssl pkcs12 -in /usr/local/nginx/conf/ssl_certificate/123456_www.xx.com.pfx -out /usr/local/nginx/conf/ssl_certificate/123456_www.xx.com.key -nocerts
c.公鑰不需
九.https配置
9.1配置文件
cd usr/local/nginx/conf/webconf
vi https_demo.conf
保存退出
9.2站點配置
upstream https_demo_7222{ server 192.168.1.140:7111 weight=1; } server{ keepalive_requests 120; listen 7222 ssl; server_name www.xx.com; ssl_certificate "/usr/local/nginx/conf/ssl_certificate/123456_www.xx.com.crt"; ssl_certificate_key "/usr/local/nginx/conf/ssl_certificate/123456_www.xx.com.key"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; charset utf-8; client_max_body_size 300M; location / { proxy_pass https://https_demo_7222; proxy_set_header REMOTE_ADDR $remote_addr; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } }
保存配置。
9.3重啟nginx.
systemctl stop nginx.service
systemctl strat nginx.service
10收尾
至此,基於nginx、tomcat、https證書的配置結束,此時可以通過https://www.xx.com:7222/進行訪問了。