全部產品
Search
文件中心

Simple Application Server:Node.js環境安裝SSL認證

更新時間:Jul 10, 2024

如果Simple Application Server已綁定了網域名稱,可以為網域名稱設定HTTPS加密訪問,以較低的成本將資料轉送協議從HTTP轉換成HTTPS,實現網站的身分識別驗證和資料加密傳輸,防止資料在傳輸過程中被篡改或資訊泄露。本文以部署Node.js環境的Simple Application Server為例,介紹如何在伺服器中安裝SSL認證,並開啟HTTPS加密訪問。

前提條件

  • 已購買網域名稱。通過阿里雲購買網域名稱的操作,請參見註冊通用網域名稱

  • 如果您的Simple Application Server部署在中國內地,需要確保網域名稱已備案。更多資訊,請參見什麼是ICP備案

  • 網域名稱已經綁定到Simple Application Server並完成網域名稱解析。具體操作,請參見綁定並解析網域名稱

背景資訊

Node.js是一個基於Chrome V8引擎的JavaScript運行環境,用於方便地搭建響應速度快、易於擴充的網路應用。Node.js使用事件驅動,非阻塞I/O模型而得以輕量和高效,非常適合在分布式裝置上運行資料密集型的即時應用。更多資訊,請參見Node.js官網

通過數位憑證管理服務(Certificate Management Service)完成認證購買、申請,並將認證部署到您的Web伺服器後,Web服務將會通過HTTPS加密協議來傳輸資料。HTTPS加密傳輸協議可啟用用戶端瀏覽器到網站伺服器之間的SSL加密通道(SSL協議),從而實現高強度單向加密傳輸,防止傳輸資料被泄露或篡改。HTTPS加密傳輸為手機App、小程式應用、代碼程式、控制項等上線應用市場或應用生態必備特徵。HTTPS加密傳輸可為網站帶來以下優勢:

  • 安全合規:滿足對應App市場或應用生態的要求。

  • 加密傳輸網路資料:加密網站使用者與網站間的資料通訊,實現傳輸資料的防劫持、防篡改、防監聽,保障資料轉送安全。

  • 提升網站安全性:規避釣魚事件發生。網站使用者在訪問網站時瀏覽器提示安全可信,可以提升網站的可信度、訪問流量和搜尋排名。

更多資訊,請參見什麼是數位憑證管理服務

步驟一:建立Node.jsSimple Application Server

  1. 登入Simple Application Server管理主控台

  2. 在左側導覽列,單擊伺服器

  3. 在Simple Application Server售賣頁,完成資源配置。

    建立Simple Application Server的具體操作,請參見建立Simple Application Server

    其中,您需要在鏡像地區,選擇應用鏡像為Node.js 16.5.0

步驟二:購買SSL認證

購買認證

  1. 訪問認證服務購買頁

  2. 根據您的實際需求選擇要購買的認證執行個體的規格。

    參數

    說明

    樣本

    認證類型

    選擇SSL認證要綁定的網域名稱類型規格:

    • 單網域名稱:SSL認證用於綁定一個單網域名稱,例如,aliyundoc.com,預設贈送www.aliyundoc.com。

    • 萬用字元網域名稱:如果您擁有多個同層級子網域名稱伺服器,使用萬用字元網域名稱認證時,僅需購買並安裝一張認證,無需為每個子網域名稱單獨購買和安裝認證。

      萬用字元網域名稱匹配規則如下:

      • 只能匹配同層級的子網域名稱,不能跨級匹配。例如,*.aliyundoc.com的網域名稱認證匹配demo.aliyundoc.com、learn.aliyundoc.com等子網域名稱,但是不匹配guide.demo.aliyundoc.com、developer.demo.aliyundoc.com等網域名稱。

      • 如果萬用字元網域名稱認證的主網域名稱為頂層網域,預設贈送主網域名稱。例如,您申請的萬用字元網域名稱認證為*.aliyundoc.com,則預設贈送主網域名稱aliyundoc.com;您如果申請的萬用字元網域名稱為*.demo.aliyundoc.com,則不會贈送demo.aliyundoc.com或aliyundoc.com。

      • 僅支援申請單個萬用字元網域名稱的認證,不支援申請多萬用字元網域名稱的認證。如需一張認證包含多個萬用字元網域名稱,您可以通過合并多個相同品牌、類型的認證,產生多萬用字元認證。具體操作,請參見認證合并申請

    • 多網域名稱:SSL認證用於同時綁定多個單網域名稱,最多支援綁定5個單網域名稱。

    單網域名稱

    品牌

    選擇您需要的認證品牌(即簽發認證的CA中心)。

    關於不同認證品牌的介紹,請參見SSL認證選購指引

    Digicert

    認證規格

    選擇您需要的認證類型。

    關於不同認證類型的介紹,請參見SSL認證選購指引

    DV SSL

    網域名稱數量

    僅當選擇多網域名稱時,需要設定該參數。選擇SSL認證要綁定的單網域名稱的個數。

    1

    數量

    購買SSL認證的數量。預設為1,不支援增加購買數量。如需購買多張SSL認證,可通過選擇服務年限,例如選擇服務年限2年,表示購買2張有效期間為1年的SSL認證。

    1

    服務年限

    選擇SSL認證服務的時間長度。可選項:

    • 1年:購買服務時間長度為1年的SSL認證。認證有效期間預設是1年,認證到期後您需要手動重新下單購買SSL認證。

    • 2年:購買實際服務時間長度為2年的SSL認證,包含2張1年有效期間的SSL認證和1次託管服務。

      關於託管服務的更多介紹,請參見託管服務概述

    • 3年:購買實際服務時間長度為3年的SSL認證,包含3張1年有效期間的SSL認證和2次託管服務。

    1年

  3. 單擊立即購買,並完成支付。

提交認證申請

  1. 登入數位憑證管理服務控制台

  2. 在左側導覽列,選擇認證管理 > SSL認證管理

  3. 正式認證頁簽下,在目標認證的操作列,單擊認證申請

  4. 認證申請面板,完成配置並勾選快捷簽發,單擊提交審核

    配置項

    說明及樣本

    證書類型

    單網域名稱

    證書規格

    digicert DV

    域名名稱

    認證綁定的網域名稱,即Simple Application Server綁定的網域名稱。例如,aliyundoc.com

    年限

    1

    快捷簽發

    網域名稱驗證方式

    • 如果您當前的阿里雲帳號與網域名稱的DNS雲解析服務所在帳號一致,申請SSL認證時,阿里雲數位憑證管理服務將會自動識別,並預設選擇自動DNS驗證方式,且不支援修改,提交審核後,系統會自動進行DNS驗證,您僅需等待認證簽發即可。

    • 如果您當前的阿里雲帳號與網域名稱的DNS雲解析服務所在帳號不一致,您可以選擇以下任意一種方式進行網域名稱所有權驗證。

      • 手工DNS驗證:您需要手動在對應的DNS網域名稱解析服務商,添加一條TXT類型的解析記錄用於網域名稱所有權驗證。

      • 檔案驗證:您需要手動從數位憑證管理服務控制台下載一個專用的驗證檔案,然後將該檔案上傳到站台伺服器的指定驗證目錄。

    連絡人

    在下拉式清單中,單擊建立連絡人,建立本次認證申請的連絡人。如果已建立過連絡人,可以直接選擇已有的連絡人。

    請您務必確保連絡人資訊準確且有效。

    所在地

    選擇您所在的城市或地區。

    密鑰演算法

    SSL認證使用的密鑰演算法。預設選擇為RSA,且不支援修改。RSA演算法是目前全球廣泛應用的非對稱式加密演算法,具有良好的相容性。

    CSR產生方式

    CSR(Certificate Signing Request)檔案是SSL認證的請求檔案,包含伺服器資訊和單位資訊,需要提交給CA中心審核。

    您選擇系統產生即可,表示由數位憑證管理服務自動使用您在密鑰演算法指定的密碼編譯演算法產生CSR檔案。

  5. 如果網域名稱驗證方式自動DNS驗證,系統會自動完成DNS驗證,您僅需等待認證簽發即可;如果網域名稱驗證方式選擇手動DNS驗證檔案驗證,您需要按照驗證資訊中的提示,完成網域名稱所有權的驗證。更多資訊和常見報錯,請參見網域名稱所有權驗證

    提交免費SSL認證申請後,CA中心一般會在30分鐘左右完成審核和簽發,請您耐心等待。SSL認證簽發後,SSL認證狀態將變更為已簽發

步驟三:配置SSL認證

認證簽發後,認證狀態將變更為已簽發,您需要下載和配置認證。關於認證下載和安裝的更多資訊,請參見SSL認證安裝指南

  1. 下載認證。

    1. 正式認證頁簽下,定位到要下載的認證,單擊操作列下的下載

    2. 認證下載對話方塊中,根據伺服器類型下載認證。

      本樣本使用Nginx做轉寄,所以下載Nginx版本。

      警告

      下載認證後,請妥善儲存,避免認證泄露導致您的網站被攻擊。

      image

    3. 壓縮包解壓之後會得到2個檔案,具體如下圖所示。

      image

  2. 使用WinSCP、Xshell等工具上傳.key認證檔案和.pem認證私密金鑰檔案到Simple Application Server的指定目錄,例如:/home。

  3. 遠端連線Simple Application Server。具體操作,請參見遠端連線Linux伺服器

  4. 執行以下命令,建立https_server_test.js專案檔。

    cd /home
    sudo touch https_server_test.js
  5. 執行以下命令,修改https_server_test.js檔案。

    vim https_server_test.js

    i鍵進入編輯模式,並將以下內容添加至https_server_test.js檔案中。內容如下所示:

    // 啟動https服務需要https包
    // 讀取檔案需要fs包
    const https = require('https');
    const fs = require('fs');
    
    // 將兩個認證檔案讀取放到options對象中
    // 使用readFileSync()方法,順序地執行讀檔案和啟動服務作業
    const options = {
        key: fs.readFileSync('/home/cert-file-name.key'),
        cert: fs.readFileSync('/home/cert-file-name.pem')
    };
    
    // 建立伺服器,啟動伺服器,設定監聽連接埠號碼
    https.createServer(options, (req, res) => {
        res.end('hello world\n');
    }).listen(443);

    說明如下:

    • /home/cert-file-name.key:需替換為實際上傳私密金鑰檔案的絕對路徑。

    • /home/cert-file-name.pem:您需要輸入實際上傳SSL認證檔案的絕對路徑。

    重要

    認證檔案的路徑需要配置正確,否則認證配置失敗,無法使用HTTPS訪問。

  6. 添加完成後,按Esc鍵退出編輯模式,並輸入:wq後按Enter鍵,儲存並退出檔案。

  7. 執行以下命令,使SSL認證生效。

    sudo node https_server_test.js
  8. 使用瀏覽器訪問https://Simple Application Server對應的網域名稱

    • 如果瀏覽器地址欄中出現小鎖標誌,表示認證已經安裝成功。sda

    • 如果網站無法通過HTTPS正常訪問,需確認您安裝認證的Simple Application Server443連接埠是否已開啟或被其他工具攔截。允許存取443連接埠的具體操作,請參見管理防火牆