如果轻量应用服务器已绑定了域名,可以为域名设置HTTPS加密访问,以较低的成本将数据传输协议从HTTP转换成HTTPS,实现网站的身份验证和数据加密传输,防止数据在传输过程中被篡改或信息泄露。本文以部署Node.js环境的轻量应用服务器为例,介绍如何在服务器中安装SSL证书,并开启HTTPS加密访问。

前提条件

  • 已购买域名。具体操作,请参见注册通用域名
  • 如果您的轻量应用服务器部署在中国内地,需要确保域名已备案。更多信息,请参见什么是ICP备案
  • 域名已经绑定到轻量应用服务器并完成域名解析。具体操作,请参见绑定并解析域名

背景信息

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.js轻量应用服务器

  1. 登录轻量应用服务器管理控制台
  2. 在左侧导航栏,单击服务器列表
  3. 在轻量应用服务器售卖页,完成资源配置。
    创建轻量应用服务器的具体操作,请参见创建轻量应用服务器

    其中,您需要在镜像区域,选择应用镜像为Node.js 16.5.0

    创建完成后,返回服务器列表,您可以查看到Node.js服务器的卡片信息。adad55

步骤二:购买SSL证书

购买证书

  1. 访问证书服务购买页
  2. 根据您的实际需求选择要购买的证书实例的规格。
    参数说明如下表所示。关于参数的详细说明,请参见购买SSL证书
    参数说明
    品牌选择您需要的证书品牌(即签发证书的CA中心)。本示例选择Digicert

    关于不同证书品牌的介绍,请参见SSL证书功能特性

    证书规格选择您需要的证书类型。本示例选择OV SSL

    关于不同证书类型的介绍,请参见什么是数字证书管理服务

    证书类型选择证书要绑定的网站域名的类型。本示例选择单域名
    域名数量默认选择1个。
    数量默认选择1个。
    服务年限选择证书服务的时长。本示例选择1年
  3. 单击立即购买,并完成支付。

提交证书申请

  1. 登录数字证书管理服务控制台
  2. SSL证书页面的证书管理页签,单击证书列表上方的证书状态下拉列表,选择待申请
    该操作将会筛选出所有已购买但是还未提交证书申请的证书实例。
  3. 定位到要操作的证书实例,单击操作列下的证书申请
  4. 证书申请面板,填写证书申请信息。
    申请不同类型证书需要填写的申请信息不同,请根据页面提示填写。

    如果您需要更详细的参数说明,请参见申请证书时需要提交的信息

  5. 提交证书申请到CA中心审核。
    填写完证书申请信息后,请根据您要申请的证书类型,执行对应的操作:
    • DV证书:单击下一步,根据页面提示完成域名所有权验证,然后单击提交审核

      关于域名所有权验证的更多介绍,请参见域名所有权验证

    • OV或EV证书:单击提交审核
    成功提交证书申请后,您将会收到以下提示。请按照提示要求,保持联系人电话畅通,并及时通过联系人邮箱查阅CA中心发送的验证邮件。提交审核提示
    成功提交证书申请后,如需修改申请信息,您可以撤回订单,修改信息后重新提交。
    说明 提交DV证书申请后,CA中心一般会在1~2个工作日内完成审核和签发。

步骤三:配置SSL证书

证书签发后,证书状态将变更为已签发,您需要下载和配置证书。关于证书下载和安装的更多信息,请参见SSL证书安装指南

  1. 下载证书。
    1. SSL证书页面证书管理页签下,定位到要下载的证书,单击操作列下的下载
    2. 证书下载对话框中,根据服务器类型下载证书。
      本示例使用Nginx做转发,所以下载Nginx版本。
      警告 下载证书后,请妥善保存,避免证书泄露导致您的网站被攻击。
      dasd
    3. 压缩包解压之后会得到2个文件,具体如下图所示。ada
  2. 使用WinSCP等工具上传.key证书文件和.pem证书私钥文件到轻量应用服务器的指定目录,例如:/root
  3. 远程连接轻量应用服务器。
    具体操作,请参见远程连接Linux服务器
  4. 运行以下命令,新建https_server_test.js项目文件。
    cd
    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('/root/cert-file-name.key'),
        cert: fs.readFileSync('/root/cert-file-name.pem')
    };
    
    // 创建服务器,启动服务器,设置监听端口号
    https.createServer(options, (req, res) => {
        res.end('hello world\n');
    }).listen(443);
    说明如下:
    • /root/cert-file-name.key:需替换为实际上传私钥文件的绝对路径。
    • /root/cert-file-name.pem:您需要输入实际上传SSL证书文件的绝对路径。
    重要 证书文件的路径需要配置正确,否则证书配置失败,无法使用HTTPS访问。
  6. 添加完成后,按Esc键退出编辑模式,并输入:wq后按Enter键,保存退出文件。
  7. 运行以下命令,激活SSL证书。
    node https_server.js
  8. 使用浏览器访问https://轻量应用服务器对应的域名
    • 如果浏览器地址栏中出现小锁标志,表示证书已经安装成功。sda
    • 如果网站无法通过HTTPS正常访问,需确认您安装证书的轻量应用服务器443端口是否已开启或被其他工具拦截。放行443端口的具体操作,请参见管理防火墙