安裝Nginx
Nginx配置SSL首先要保證安裝的時候安裝的有SSL模塊
如果沒有的話打開ssl會報如下錯誤
[nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.co]
安裝nginx
#如果之前有安裝過的,想把之前的配置復制過來,可以在nginx目錄下使用此命令查看之前的配置
/usr/local/nginx/sbin/nginx -V
#下載-->解壓nginx 然后進入源碼目錄執(zhí)行如下命令進行安裝
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
make install完畢會在我們指定的 /usr/local/nginx目錄出現(xiàn)編譯后的nginx
嘗試啟動nginx
/usr/local/nginx/sbin/nginx
發(fā)現(xiàn)報錯:
nginx: [emerg] BIO_new_file("/usr/local/nginx/conf/cert.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/usr/local/nginx/conf/cert.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
這說明ssl模塊已經有了, 只不過我們還沒有給nginx配置證書而已
配置證書
阿里云為例:
控制臺==>域名==>選中你的域名==>管理==>開啟SSL==>購買證書頁面(沒錢不買,點左上角"回到證書列表")==>點擊"購買證書"==>選擇免費版(個人) 免費版只可以給單域名使用一年,對個人來說足夠了
- PS: (購買后一般幾分鐘就能簽發(fā)下來)
==>回到證書列表
找到剛才購買的證書點擊下載, 選擇你使用證書的方式(推薦使用Nginx,省得換個Tomcat就得重新部署一遍證書)
==>將證書放在你的Nginx所在服務器上, 比如我 放在/root/cert目錄下
==>配置nginx.conf 告訴Nginx證書所在位置
server {
listen 443 ssl; #https默認端口
server_name www.sourcecoder.cn; #證書綁定的域名
ssl_certificate /root/cert/3710808_www.sourcecoder.cn.pem; #證書位置
ssl_certificate_key /root/cert/3710808_www.sourcecoder.cn.key;#證書key位置
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #加密協(xié)議配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #加密套件配置
ssl_prefer_server_ciphers on;#打開
location / {
root html;
index index.html index.htm;
}
}
#將80端口的請求轉發(fā)到443
server {
listen 80;
server_name www.sourcecoder.cn;#填寫綁定證書的域名
rewrite ^ https://$http_host$request_uri? permanent; # 將http轉到https
}
加密協(xié)議的配置有特殊兼容需求的可以參考:http://f2ex.cn/properly-enable-http2-support/
==>重啟Nginx
nginx -t #測試配置是否有誤
service nginx restart
==>沒有問題的話訪問你的域名,發(fā)現(xiàn)已經是Https協(xié)議了! 成功!