1. 程式人生 > 其它 >Windows下用nginx配置https伺服器

Windows下用nginx配置https伺服器

注意:自簽名的證書,不被瀏覽器信任,適合內部或者測試使用。生產環境老老實實去買證書吧。下一階段嘗試使用letsencrypt頒發證書
背景:
因運維給不了dev或者qa伺服器的許可權,且公網域名訪問不了自己的機器,故在自己的開發機上搭建https伺服器來驗證證書問題

1.本地繫結hosts

127.0.0.1 http://a.b.co.cn

2.安裝nginx

  • 執行 nginx

start nginx

  • 驗證

在瀏覽器中輸入 http://a.b.co.cn 訪問即可,如出現以下頁面,即安裝成功

3.安裝 OpenSSL

在path變數後需要加入 %OPENSSL_HOME%

3.生成https證書

  • 在E:\nginx-1.20.1下建立ssl資料夾 用於存放證書
  • 建立私鑰 (建議使用系統視窗,不要用gitBash 有涉及到選擇的地方,gitBash無法選擇)

openssl genrsa -des3 -out shidian.key 1024 //shidian 自己取的名字

  • 建立 csr 證書

openssl req -new -key shidian.key -out shidian.csr

  • 刪除密碼
    複製 shidian.key 並重命名 shidian.key.org

openssl rsa -in shidian.key.org -out shidian.key

  • 生成crt證書

openssl x509 -req -days 365 -in shidian.csr -signkey shidian.key -out shidian.crt

  • 最後生成證書如下

4.修改 nginx 下的 nginx.conf配置檔案

E:\nginx-1.20.1\nginx.conf

server { listen 443 ssl; server_name a.b.co.cn; # 配置的https的域名 ssl_certificate E://nginx-1.20.1//ssl//shidian.crt; # 這個是證書的crt檔案所在目錄 ssl_certificate_key E://nginx-1.20.1//ssl//shidian.key; # 這個是證書key檔案所在目錄 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }

  • 重啟nginx

nginx -s reload

  • 訪問

輸入你配置好的域名即可訪問了

但顯示無效證書

自簽名的證書,不被瀏覽器信任,適合內部或者測試使用。生產環境老老實實去買證書吧。下一階段嘗試使用letsencrypt頒發證書

本文轉自 https://zhuanlan.zhihu.com/p/398569433,如有侵權,請聯絡刪除。