最近開發一個微信公衆號小程序,服務器端要求https,因而在雲 主 機上部署了nginx,並配置啓用了443https。記錄一下設置過程:linux
第一步、nginx從新編譯添加ssl模塊nginx
一、查看nginx版本號:算法
cd /usr/local/nginx/sbin小程序
./nginx -V服務器
二、下載nginx對應版本源碼包並解壓微信
cd /usr/local/srcmarkdown
wget http://nginx.org/download/nginx-1.14.1.tar.gzsession
tar -zxvf nginx-1.14.1.tar.gzide
三、編譯加密
cd nginx-1.14.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
四、複製執行文件
cd /usr/local/src/nginx-1.14.1/objs
killall nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp objs/nginx /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -t
cd /usr/local/nginx/sbin/
./nginx
第二步、SSL證書申請
一、確認須要申請證書的域名
二、生成私鑰和csr文件
在linux機器上執行如下命令生成私鑰
#openssl genrsa -out server.key 2048
在linux機器上執行如下命令生成csr文件
#openssl req -new -key server.key -out certreq.csr
如下黑色標識文字僅供參考,請根據商戶本身實際狀況進行填寫
Country Name: CN //您所在國家的ISO標準代號,中國爲CN
State or Province Name:guandong //您單位所在地省/自治區/直轄市
Locality Name:shenzhen //您單位所在地的市/縣/區
Organization Name: Tencent Technology (Shenzhen) Company Limited //您單位/機構/企業合法的名稱
Organizational Unit Name: R&D //部門名稱
Common Name: www.example.com //通用名,例如:www.itrus.com.cn。此項必須與您訪問提供SSL服務的服務器時所應用的域名徹底匹配。
Email Address: //您的郵件地址,沒必要輸入,直接回車跳過
"extra"attributes //如下信息沒必要輸入,回車跳過直到命令執行完畢。
執行上面的命令後,在當前目錄下便可生成私鑰文件server.key和certreq.csr csr文件
三、
a、將生成的csr文件提交給第三方證書頒發機構申請對應域名的服務器證書,同時將私鑰文件保存好,以避免丟失。
b、服務器配置https協議,三種免費的方法(可以使用免費的證書)
四、證書申請後,證書頒發機構會提供服務器證書內容和兩張中級CA證書,請按證書頒發機器說明生成服務器證書,此處假設服務器證書文件名稱爲server.pem
五、將生成的私鑰文件server.key和服務器證書server.pem拷貝至服務器指定的目錄便可進行HTTPS服務器配置
第三步、HTTPS服務器配置
一、 Nginx配置
server {
listen 443; #指定ssl監聽端口
server_name www.example.com;
ssl on; #開啓ssl支持
ssl_certificate /etc/nginx/server.pem; #指定服務器證書路徑
ssl_certificate_key /etc/nginx/server.key; #指定私鑰證書路徑
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #指定SSL服務器端支持的協議版本
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; #指定加密算法
ssl_prefer_server_ciphers on; #在使用SSLv3和TLS協議時指定服務器的加密算法要優先於客戶端的加密算法
#如下內容請按域名須要進行配置,此處僅供參考
location / {
return 444;
}
}