- 業務場景
因安全要求,對外只能暴露80 443端口 ,而且一旦一個用了https 其調用的其他http接口也都需要https,導致證書需求量很多, 業務場景需要給別人部署服務器
目前的證書都是在騰訊雲上申請的, 一個賬號只能申請20個(可能是50個)證書, 明顯不夠用, 要不就多搞幾個騰訊雲賬號 要不就想其他辦法搞證書
- 用freessl申請免費證書 目前沒限制說一個賬號限制申請多少個證書 https://freessl.cn/
- 部署一個應用到服務器 保證ip+端口可以訪問到

2. 解析一個域名到服務器 運維在管理這些 我們的域名是在 https://www.dns.com/ 上購買的
解析好后 命令行 ping下是否解析到你的服務器ip

3. 打開 https://freessl.cn/ 輸入你剛剛解析的域名

輸入郵箱 CSR生成 選擇一鍵生成 然后下載安裝keymanager
注冊keymanager后選擇域名服務商 我們是用的dns.com 點擊下面鏈接獲取秘鑰 填寫完密保問題后就會給一個key一個secret 填入下面

4. 然后點擊一鍵申請 成功后會有一條記錄

點擊右邊的操作 查看詳情 => 查看證書 =>導出證書 選擇證書你要部署的服務器平台后就可導出了 我們用的nginx
導出到桌面后解壓有2個文件

5. 配置nginx
找到nginx配置文件存放的路徑 一般是/etc/nginx 不知道可以查下nginx安裝在哪
whereis nginx
創建一個配置文件 域名.conf
server { listen 80; listen 443 ssl; server_name 你的域名.xyz www.你的域名.xyz; if ($server_port !~ 443){ return 307 https://$host$request_uri; } ssl_certificate /usr/local/nginx/ssl/你的域名.xyz_chain.crt; #你的證書上傳到這個路徑 ssl_certificate_key /usr/local/nginx/ssl/你的域名.xyz_key.key; #你的證書上傳到這個路徑 gzip on; gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; gzip_types *; gzip_vary on; location / { #root /usr/src/gameclient/; #index index.html index.htm; proxy_pass http://10.0.1.5:23232/; #建議程序只監聽內網IP端口 由nginx做轉發 上面的步驟1 只是為了測下保證ip+端口可以正常訪問 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
重新加載nginx
nginx -s reload
瀏覽器輸入域名訪問下 看看是否會跳轉https

