【实战 Ids4】║ 给授权服务器加个锁——HTTPS配置
在上篇文章《【實戰 Ids4】║客戶端、服務端、授權中心全線打通!》中,我們正式的將三站打通,發布過后,有小伙伴反饋,可能Nginx對配置HTTPS安全協議有點兒問題,我也就半夜趁著沒人打擾,瘋狂的研究一波,發現其實挺簡單的,不知道是不是我沒有理解小伙伴提出的疑問點。
好了,馬上開始。
其實關于配置HTTPS,主要的就是證書的問題,證書呢,又是公鑰和私鑰的方案,剩下的就是配置了,歸根結底,只要我們搞到證書就行了,這里常見的是兩種方案:
1、OpenSSL本地安裝;(不推薦)
2、云平臺免費申請SSL證書(本文講的是騰訊云);
那我就簡單的說說這兩種方式吧。
OpenSSL本地安裝
這種方案呢,主要是如果自己沒有云服務平臺,沒有其他的信息,或者不想麻煩,只是想本地測試一波,可以簡單的這么搞搞。
1、安裝OpenSSL工具
官網下載地址:https://slproweb.com/products/Win32OpenSSL.html
2、解壓安裝證書
解壓安裝完成后,找到安裝目錄,去bin文件夾下,執行命令,如果你想使用命令,需要配置環境變量,但是如果不想配置,就直接用powershell來運行exe即可:
.\openssl.exe req -newkey rsa:2048 -nodes -keyout laozhang.key -x509 -days 365 -out laozhang.cer
然后會提示讓你輸入一些內容,自己配置一下就行,比如我的:
這里生成了一個.key文件,還有一個.cer文件,具體的就是私鑰和公鑰,自己可以搜索下資料,這里不多說。
3、Nginx配置443
現在我們有了證書,就可以配置HTTPS轉發了,如果你使用過IIS的肯定都知道,我們只需要配置一下443端口即可,Nginx也是如何,直接上代碼:
server?{listen?????????443?ssl; #443端口server_name ids.neters.club; #網站域名,和80端口保持一致ssl on;ssl_certificate?laozhang.cer;???????#證書公鑰ssl_certificate_key??laozhang.key;??#證書私鑰ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!3DES:!aNULL:!eNULL;ssl_prefer_server_ciphers on;location / {proxy_pass http://ids.neters.club;proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Cookie $http_cookie;#proxy_cookie_pathchunked_transfer_encoding???????off;???????????}}基本的配置方式和80很像,前提是你得配置好80端口,然后再配置443端口。
然后我們重啟nginx,查看效果.
這里要說一下,這個證書是正確的,但是卻是無效的,如果你有一定的計算機網絡的經驗呢,就知道了,不僅僅是證書正確就行了,還需要進行校驗,比如常見的是:
1、文件校驗;
2、郵件校驗;
3、DNS校驗;
剛剛咱們創建的,如果配置好后,我們雖然可以可以訪問https,但是連接是不安全的,因為沒有校驗:
那這個時候怎么辦呢,既然我們有域名,肯定就有對應的DNS運行商,讓他們給我配置校驗就好了,直接我們就在云平臺申請即可,我說下我在騰訊云的申請。
云平臺申請SSL證書
過程很簡單,我們只需要取ssl頁面,申請個免費的即可:
然后配置上我們的域名,和校驗方式,
等待官方自動校驗審核,大概0.5~1個小時左右,就通過了,我們下載下來可以看到,官方很人性化的給我們提供了多個服務器版本的文件,我們打開Nginx就可以看到兩個文件了:
你可能會好奇,為啥是.crt文件,上邊不是.cer文件么,這個可以問問計算機網絡老師。
然后我們把文件提交到服務器,重啟下Nginx,就看到了綠色的了:
三方調整請求域名
這個就是很簡單的,只需要把之前的域名改成https的即可:
Blog.IdentityServer:
Blog.Core:
Blog.Admin:
強制轉換HTTPS
如果說,你不想用http了,可以配置強制轉到https上,nginx還是很強大的,我測試過可以,無論是重寫的方式,還是return的方式,但是目前不想強制轉換,大家自己試試就知道了。
總結
以上是生活随笔為你收集整理的【实战 Ids4】║ 给授权服务器加个锁——HTTPS配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020年了,再不会Https就老了
- 下一篇: 分布式锁的实现与探索