1、微信小程序免費SSL證書Https 申請(阿里雲申請)
-
進入阿里雲控制台后,選擇
CA證書服務
-
選擇
購買證書
但是阿里雲的免費SSL證書藏得比較深,得這樣操作才能顯示出免費證書
點擊Symantec
->點擊增強型OV SSL
->點擊免費型DV SSL
->支付即可
步驟1:
步驟2:
步驟3:
步驟4:
步驟5:
- 進入證書控制台
補全證書信息,由於是免費證書,因此只能填寫一個域名,而且無法使用通配符
步驟1:填寫域名
步驟2:補全信息
2、小程序要求的 TLS 版本必須大於等於1.2
-
問題環境
服務器:Windows 2008 Server、IIS7 -
問題描述
微信小程序使用wx.request
時,調試報錯:小程序要求的TLS版本必須大於等於1.2.
-
問題原因
Windows 服務器默認沒有啟用支持TLS 1.2及以上版本。 -
前提
Windows 系統 TLS 支持情況
備注:如果操作系統不支持相應TLS則無法使用以下解決方案
也可以通過該網址判斷是否已支持TLS
https://www.ssllabs.com/ssltest/index.html
通過以下內容可判斷是否已支持相應TLS
- 解決方案
首先:開始->運行->PowerShell
然后:復制一下命令在PowerShell
中執行完成后,直接回車即可。
# Enables TLS 1.2 on windows Server 2008 R2 and Windows 7
# These keys do not exist so they need to be created prior to setting values.
md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2"
md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server"
md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client"
# Enable TLS 1.2 for client and server SCHANNEL communications
new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "Enabled" -value 1 -PropertyType "DWord"
new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "DisabledByDefault" -value 0 -PropertyType "DWord"
new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "Enabled" -value 1 -PropertyType "DWord"
new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "DisabledByDefault" -value 0 -PropertyType "DWord"
# Disable SSL 2.0 (PCI Compliance)
md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server"
new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" -name Enabled -value 0 -PropertyType "DWord"
# Enables TLS 1.2 on Windows Server 2008 R2 and Windows 7 # These keys do not exist so they need to be created prior to setting values. md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" # Enable TLS 1.2 for client and server SCHANNEL communications new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "Enabled" -value 1 -PropertyType "DWord" new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "DisabledByDefault" -value 0 -PropertyType "DWord" new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "Enabled" -value 1 -PropertyType "DWord" new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "DisabledByDefault" -value 0 -PropertyType "DWord" # Disable SSL 2.0 (PCI Compliance) md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" -name Enabled -value 0 -PropertyType "DWord"
最后:重啟服務器(必須步驟)后就可以了,再進行wx.request
請求
3、未顯示頁面,因為請求實體過大
- 問題描述
在IIS上部署一個可以接受文件上傳的Post WebApi,使用Http
驗證時沒有任何問題,使用SSL
后;通過微信小程序Post文件流,就會導致異常:未顯示頁面 因為請求實體過大
的413 錯誤;但是在 Chrome 內核的微信小程序編輯工具中,則不存在該問題。 - 問題原因
客戶端發起一個請求后,IIS會收到足以解析請求標頭的數據,但不會收到整個請求實體正文,如果發現需要客戶端證書時,將嘗試重新協商連接;但此時客戶端正等待向IIS發送請求中的其余數據。因此,如果讓客戶端能接受重新協商,則必須使用SSL預加載功能預加載請求實體正文,此時則可能引起默認設置值UploadReadAheadSize
長度太小的問題。 - 解決方案
進入cd C:\Windows\System32\Inetsrv
目錄執行命令行
appcmd.exe list config -section:system.webServer/serverRuntime // 查看當前設置的 UploadReadAheadSize 大小(byte)
appcmd.exe set config -section:system.webServer/serverruntime /uploadreadaheadsize:204800 /commit:apphost // 根據需要調整大小;