1. 程式人生 > >微信小程式正式上線,服務端請求必須HTTPS

微信小程式正式上線,服務端請求必須HTTPS

1月9日凌晨微信小程式正式上線,首批上線的小程式有三百多家,使用者需要將微信更新至iOS6.5.3版本或Android6.5.3版本進行體驗。

微信小程式自9月份首次開啟內測就開始在圈內刷屏了,不需要下載安裝,“用完即走”的理念,使其被譽為“APP殺手”。微信龐大社交使用者基礎,可能帶來的業務爆發性上,這一波微信紅利,開發者怎可錯過?

但是微信對小程式也是有諸多的限制,例如檔案大小、請求服務端必須是HTTPS等等。實現伺服器端HTTPS請求,需要在伺服器端配置sslz證書實現。說到SSL證書,很多開發者會覺得頭大,因為SSL證書涉及多個種類,如何選擇才能符合小程式的要求?如何配置SSL證書到伺服器端?本篇要講的就是在最短的時間內,讓你的網站從HTTP升級到HTTPS。如果你開發的微信小程式還沒有啟用HTTPS,那麼這篇文章也許可以幫到你。

SSL證書的作用

HTTP明文協議是不安全的傳輸協議,無法進行伺服器端真實身份校驗,也不能為傳輸資料提供加密保護,通過HTTP協議傳輸的資料時刻處在被竊聽、篡改、冒充的風險中。HTTPS傳輸協議在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證伺服器的身份,併為瀏覽器和伺服器之間的通訊進行加密,確保資料傳輸到正確的伺服器端,並防止中間人竊取傳輸資料。

目前全球網際網路正在從HTTP向HTTPS的大遷移,Chrome和火狐瀏覽器將對不採用HTTPS加密的網站提示不安全,蘋果要求所有APP通訊都必須採用HTTPS加密,小程式強制要求伺服器端使用HTTPS請求,正是順應了網際網路安全的趨勢。

微信小程式對HTTPS的要求

每個微信小程式必須事先設定一個通訊域名,並通過HTTPS請求進行網路通訊,不滿足條件的域名和協議無法請求。也就是說,請求request地址必須是合法域名,需要有SSL證書認證過。

SSL證書的選擇

目前市面上的主流SSL證書可分為三大類,DV SSL證書(域名驗證型)、OV SSL證書(企業驗證型)、EV SSL證書(擴充套件驗證型)。

微信小程式SSL證書

DV SSL證書

DV SSL證書之所以被稱為域名驗證型SSL證書,是因為在申請時CA機構只稽核域名的所有權,不驗證域名所有者的真實身份。我們使用SSL證書,不僅僅用於傳輸加密,還因為它代表著網站身份是真實的、經過驗證的,而DV SSL證書只能實現傳輸加密,無法驗證網站所有者身份,是不完整的SSL證書產品,通常只適用於產品測試、個人網站、個人部落格等方面。

企業級微信小程式在測試階段可以選用沃通DV SSL證書,但是在正式上線後,最好換成企業級別的沃通OV或EV SSL證書。

OV SSL證書

OV SSL證書被稱為企業驗證型SSL證書,是因為申請時不僅需要驗證域名所有權,還需要提交企業真實身份的驗證材料。無法通過真實身份驗證的使用者,無法獲取到OV級別的SSL證書,因此其具備加密傳輸和身份驗證的完整功能。

如果您的小程式涉及多個域名,推薦使用沃通OV SSL多域名證書,可支援一張證書繫結一個頂級域名下的無數個萬用字元子域名或繫結100個多域名,是價效比很高的選擇。

沃通OV SSL證書

EV SSL證書

EV SSL證書被稱為擴充套件驗證型SSL證書,是因為申請EV SSL證書不僅需要驗證域名所有權,按規定提交企業真實身份驗證材料,還要求提供更加詳細的企業資訊(如具體營業地址等資訊),並提供具有法律效力的證明檔案(如律師函等)。經過EV級別驗證的網站,身份真實可靠,瀏覽器也會對EV驗證的網站進行特殊的品牌展示,比如瀏覽器位址列顯示綠色、直觀展示網站所屬單位名稱等等,展現良好的品牌形象和公信力。

沃通EV SSL證書

在產品效能標準化的SSL證書行業,優質服務成為開發者產品選型過程中要考慮的重點。

服務端配置SSL證書

以Ngnix為例,開啟其中的for Nginx 檔案可以看到 2 個檔案,包括公鑰、私鑰。

開啟Nginx安裝目錄下conf目錄中的nginx.conf檔案找到

#HTTPS server

#

#server {

# listen 443;

# server_name localhost;

# ssl on;

# ssl_certificate cert.pem;

# ssl_certificate_key cert.key;

# ssl_session_timeout 5m;

# ssl_protocols SSLv2 SSLv3 TLSv1;

# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

# ssl_prefer_server_ciphers on;

# location / {

# root html;

# index index.html index.htm;

# }

#}

將其修改為 :

server {

listen 443;

server_name localhost;

ssl on;

ssl_certificate sslkey/public.cer; (證書公鑰)

ssl_certificate_key sslkey/private.key; (證書私鑰)

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1TLSv1.2;

ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;

ssl_prefer_server_ciphers on;

location / {

root html;

index index.html index.htm;

}

}

儲存退出,並重啟Nginx。通過https方式訪問您的站點,確認站點證書安裝配置正確即可,其實沒有想象的那麼難。如果你使用的是其他伺服器。