Nginx配置Https詳細說明
阿新 • • 發佈:2018-05-07
Nginx Https TLS或傳輸層安全( transport layer security),它的前身是SSL(安全套接字層secure sockets layer),是Web協議用來包裹在一個受保護,加密封裝正常通道。采用這種技術,服務器和客戶端之間可以安全地進行交互,而不用擔心消息將被攔截和讀取。證書系統幫助用戶在核實它們與連接站點的身份。
環境說明
環境說明
Nginx*2+Keepalived+Tomcat*2的Web環境
搭建詳細請看:http://blog.51cto.com/gdutcxh/2109841
實驗環境下配置
1、下載openssl:yum install openssl* -y 2、使用openssl生成數字證書 mkdir -p /etc/nginx/ssl openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.pem Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:New York Locality Name (eg, city) []:New York City Organization Name (eg, company) [Internet Widgits Pty Ltd]:Bouncy Castles, Inc. Organizational Unit Name (eg, section) []:Ministry of Water Slides Common Name (e.g. server FQDN or YOUR name) []:your_domain.com Email Address []:admin@your_domain.com 3、Nginx下的配置(只啟用Https) server { listen 80; server_name www.yourdomain.com; rewrite ^ https://$http_host$request_uri? permanent; # force redirect http to https #return 301 https://$http_host$request_uri; } server { listen 443 ssl; ssl_certificate /etc/nginx/ssl/nginx.pem; ssl_certificate_key /etc/nginx/ssl/nginx.key; keepalive_timeout 70; server_name www.yourdomain.com; #禁止在header中出現服務器版本,防止黑客利用版本漏洞攻擊 server_tokens off; #如果是全站 HTTPS 並且不考慮 HTTP 的話,可以加入 HSTS 告訴你的瀏覽器本網站全站加密,並且強制用 HTTPS 訪問 #add_header Strict-Transport-Security "max-age=31536000; includeSubdomains"; # ...... fastcgi_param HTTPS on; fastcgi_param HTTP_SCHEME https; access_log /var/log/nginx/wiki.xby1993.net.access.log; error_log /var/log/nginx/wiki.xby1993.net.error.log; } 4、同時使用Http和Https Nginx下配置 server { listen 80; listen 443 ssl; server_name www.example.com; ssl_certificate www.example.com.pem; ssl_certificate_key www.example.com.key; ... } 6、重啟Nginx
openssl的說明
req: 配置參數-x509指定使用 X.509證書簽名請求管理(certificate signing request (CSR))."X.509" 是一個公鑰代表that SSL and TLS adheres to for its key and certificate management. -nodes: 告訴OpenSSL生產證書時忽略密碼環節.(因為我們需要Nginx自動讀取這個文件,而不是以用戶交互的形式)。 -days 36500: 證書有效期,100年 -newkey rsa:2048: 同時產生一個新證書和一個新的SSL key(加密強度為RSA 2048) -keyout:SSL輸出文件名 -out:證書生成文件名 它會問一些問題。需要註意的是在common name中填入網站域名,如wiki.xby1993.net即可生成該站點的證書,同時也可以使用泛域名如*.xby1993.net來生成所有二級域名可用的網站證書。
企業Web服務器的HTTPS
一、申請,購買CA證書
一般各大雲服務提供商都會有此類證書服務,根據公司和業務需求,可以自己選擇免費或者付費的證書。
二、下載並解壓證書文件
一個zip包,裏面有xxx.key和xxx.pem兩個文件。
三、配置Nginx(同上)
Nginx配置Https詳細說明