如果轻量应用服务器已绑定了域名,可以为域名设置HTTPS加密访问,以较低的成本将数据传输协议从HTTP转换成HTTPS,实现网站的身份验证和数据加密传输,防止数据在传输过程中被篡改或信息泄露。本文以部署Node.js环境的轻量应用服务器为例,介绍如何在服务器中安装SSL证书,并开启HTTPS加密访问。
前提条件
背景信息
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轻量应用服务器
- 登录轻量应用服务器管理控制台。
- 在左侧导航栏,单击服务器列表。
- 在轻量应用服务器售卖页,完成资源配置。创建轻量应用服务器的具体操作,请参见创建轻量应用服务器。
其中,您需要在镜像区域,选择应用镜像为Node.js 16.5.0。
创建完成后,返回服务器列表,您可以查看到Node.js服务器的卡片信息。
步骤二:购买SSL证书
购买证书
- 访问证书服务购买页。
- 根据您的实际需求选择要购买的证书实例的规格。参数说明如下表所示。关于参数的详细说明,请参见购买SSL证书。
参数 说明 品牌 选择您需要的证书品牌(即签发证书的CA中心)。本示例选择Digicert。 关于不同证书品牌的介绍,请参见SSL证书功能特性。
证书规格 选择您需要的证书类型。本示例选择OV SSL。 关于不同证书类型的介绍,请参见什么是数字证书管理服务。
证书类型 选择证书要绑定的网站域名的类型。本示例选择单域名。 域名数量 默认选择1个。 数量 默认选择1个。 服务年限 选择证书服务的时长。本示例选择1年。 - 单击立即购买,并完成支付。
提交证书申请
- 登录数字证书管理服务控制台。
- 在SSL证书页面的证书管理页签,单击证书列表上方的证书状态下拉列表,选择待申请。该操作将会筛选出所有已购买但是还未提交证书申请的证书实例。
- 定位到要操作的证书实例,单击操作列下的证书申请。
- 在证书申请面板,填写证书申请信息。申请不同类型证书需要填写的申请信息不同,请根据页面提示填写。
如果您需要更详细的参数说明,请参见申请证书时需要提交的信息。
- 提交证书申请到CA中心审核。填写完证书申请信息后,请根据您要申请的证书类型,执行对应的操作:
- DV证书:单击下一步,根据页面提示完成域名所有权验证,然后单击提交审核。
关于域名所有权验证的更多介绍,请参见域名所有权验证。
- OV或EV证书:单击提交审核。
成功提交证书申请后,您将会收到以下提示。请按照提示要求,保持联系人电话畅通,并及时通过联系人邮箱查阅CA中心发送的验证邮件。成功提交证书申请后,如需修改申请信息,您可以撤回订单,修改信息后重新提交。说明 提交DV证书申请后,CA中心一般会在1~2个工作日内完成审核和签发。 - DV证书:单击下一步,根据页面提示完成域名所有权验证,然后单击提交审核。
步骤三:配置SSL证书
证书签发后,证书状态将变更为已签发,您需要下载和配置证书。关于证书下载和安装的更多信息,请参见SSL证书安装指南。
- 下载证书。
- 使用WinSCP等工具上传.key证书文件和.pem证书私钥文件到轻量应用服务器的指定目录,例如:/root。
- 远程连接轻量应用服务器。具体操作,请参见远程连接Linux服务器。
- 运行以下命令,新建https_server_test.js项目文件。
cd touch https_server_test.js
- 运行以下命令,修改https_server_test.js文件。
按i键进入编辑模式,并将以下内容添加至https_server_test.js文件中。内容如下所示:vim 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访问。 - 添加完成后,按Esc键退出编辑模式,并输入:wq后按Enter键,保存退出文件。
- 运行以下命令,激活SSL证书。
node https_server.js
- 使用浏览器访问
https://轻量应用服务器对应的域名
。- 如果浏览器地址栏中出现小锁标志,表示证书已经安装成功。
- 如果网站无法通过HTTPS正常访问,需确认您安装证书的轻量应用服务器443端口是否已开启或被其他工具拦截。放行443端口的具体操作,请参见管理防火墙。
- 如果浏览器地址栏中出现小锁标志,表示证书已经安装成功。