微信小程序部署問題總結

一、微信小程序免費SSL證書Https 申請(阿里雲申請)

  • 進入阿里雲控制檯後,選擇CA證書服務
    html

  • 選擇購買證書
    web

可是阿里雲的免費SSL證書藏得比較深,得這樣操做才能顯示出免費證書
點擊Symantec->點擊加強型OV SSL->點擊免費型DV SSL->支付便可
步驟1:
小程序

步驟2:
windows

步驟3:
微信小程序

步驟4:
服務器

步驟5:
微信

  • 進入證書控制檯

補全證書信息,因爲是免費證書,所以只能填寫一個域名,並且沒法使用通配符
步驟1:填寫域名
app

步驟2:補全信息
ide

二、小程序要求的 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請求

三、未顯示頁面,由於請求實體過大

  • 問題描述
    在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   // 根據須要調整大小;
相關文章
相關標籤/搜索