1.生成key檔案:
openssl genrsa -out ssl.key 2048
#提示輸入密碼,暫時回車
#測試環境不要加密碼,每次調試都要輸入密碼很麻煩
2.使用key生成一個csr檔案:
openssl req -new -key ssl.key -out ssl.csr
#測試環境,出提示一路回車即可
3.用csr檔案、key檔案,頒發證書
openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
#生成一個ssl.crt證書檔案
4.修改nginx配置檔案
#之前編譯nginx已經預設支援ssl子產品
#如不确定,可以用 nginx -V 檢視版本及編譯參數
兩種方法:
1.負載均衡伺服器實作
2.實際的webserver實作
這裡采用在負載伺服器上實作:
nginx.conf配置檔案中:
listen 改為443
listen 10.0.0.3:443;
然後在server區塊加入内容:
###https
ssl on;
ssl_certificate /application/nginx/ssl/ssl.crt;
ssl_certificate_key /application/nginx/ssl/ssl.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
###end
最後加了一個location區塊: ——避免了每次跳轉網頁時變成http
server {
listen 10.0.0.3:80;
server_name www.george.com;
rewrite ^/(.*) https://www.george.com/$1 permanent;
}
重新開機nginx 測試,成功(由于是本地測試,仍然會提示不安全,但已經實作https通路)
1.做了https後,每次通路網址時顯示異常
因為https位址中,如果加載了http資源,浏覽器将認為這是不安全的資源,将會預設阻止,這就會給你帶 來資源不全的問題了,比如:圖檔顯示不了,樣式加載不了,JS加載不了。因為樣式類,基本上都是寫在本 地的,是以一般還可以,但是一些公共的js檔案,往往就是存在于cdn或者其他伺服器上,這時候,如果訪 問不了,可能就導緻了業務就完全操作不了。
小夥伴們可以關注我的×××公衆号:linux運維菜鳥之旅