如果您的轻量应用服务器已绑定了域名,可以为域名配置HTTPS加密访问,以较低的成本将数据传输协议从HTTP转换成HTTPS,实现网站的身份验证和数据加密传输,防止数据在传输过程中被篡改,信息泄露。本文以使用WordPress 5.8的轻量应用服务器为例,介绍在服务器中安装SSL证书,并开启HTTPS加密访问。
前提条件
已创建轻量应用服务器。具体操作,请参见快速搭建WordPress个人博客。
已购买域名。通过阿里云购买域名的操作,请参见注册通用域名。
如果您的轻量应用服务器部署在中国内地,需要确保域名已备案。更多信息,请参见什么是ICP备案。
域名已经绑定到轻量应用服务器并完成域名解析。具体操作,请参见绑定并解析域名。
背景信息
通过数字证书管理服务(Certificate Management Service)完成证书购买、申请,并将证书部署到您的Web服务器后,Web服务将会通过HTTPS加密协议来传输数据。HTTPS加密传输协议可激活客户端浏览器到网站服务器之间的SSL加密通道(SSL协议),从而实现高强度单向加密传输,防止传输数据被泄露或篡改。HTTPS加密传输为手机APP、小程序应用、代码程序、控件等上线应用市场或应用生态必备特征。HTTPS加密传输可为网站带来以下优势:
安全合规:满足对应App市场或应用生态的要求。
加密传输网络数据:加密网站用户与网站间的数据通信,实现传输数据的防劫持、防篡改、防监听,保障数据传输安全。
提升网站安全性:规避钓鱼事件发生。网站用户在访问网站时浏览器提示安全可信,可以提升网站的可信度、访问流量和搜索排名。
步骤一:购买SSL证书
购买证书
访问证书服务购买页。
根据您的实际需求选择要购买的证书实例的规格。
参数
说明
示例
证书类型
选择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年
单击立即购买,并完成支付。
提交证书申请
登录数字证书管理服务控制台。
在左侧导航栏,选择。
在正式证书页签下,在目标证书的操作列,单击证书申请。
在证书申请面板,完成配置并勾选快捷签发,单击提交审核。
配置项
说明及示例
证书类型
单域名
证书规格
digicert DV
域名名称
证书绑定的域名,即轻量应用服务器绑定的域名。例如,aliyundoc.com
年限
1
快捷签发
域名验证方式
如果您当前的阿里云账号与域名的DNS云解析服务所在账号一致,申请SSL证书时,阿里云数字证书管理服务将会自动识别,并默认选择自动DNS验证方式,且不支持修改,提交审核后,系统会自动进行DNS验证,您仅需等待证书签发即可。
如果您当前的阿里云账号与域名的DNS云解析服务所在账号不一致,您可以选择以下任意一种方式进行域名所有权验证。
手工DNS验证:您需要手动在对应的DNS域名解析服务商,添加一条TXT类型的解析记录用于域名所有权验证。
文件验证:您需要手动从数字证书管理服务控制台下载一个专用的验证文件,然后将该文件上传到站点服务器的指定验证目录。
联系人
在下拉列表中,单击新建联系人,新建本次证书申请的联系人。如果已创建过联系人,可以直接选择已有的联系人。
请您务必确保联系人信息准确且有效。
所在地
选择您所在的城市或地区。
密钥算法
SSL证书使用的密钥算法。默认选择为RSA,且不支持修改。RSA算法是目前全球广泛应用的非对称加密算法,具有良好的兼容性。
CSR生成方式
CSR(Certificate Signing Request)文件是SSL证书的请求文件,包含服务器信息和单位信息,需要提交给CA中心审核。
您选择系统生成即可,表示由数字证书管理服务自动使用您在密钥算法指定的加密算法生成CSR文件。
如果域名验证方式是自动DNS验证,系统会自动完成DNS验证,您仅需等待证书签发即可;如果域名验证方式选择手动DNS验证或文件验证,您需要按照验证信息中的提示,完成域名所有权的验证。更多信息和常见报错,请参见域名所有权验证。
提交免费SSL证书申请后,CA中心一般会在30分钟左右完成审核和签发,请您耐心等待。SSL证书签发后,SSL证书状态将变更为已签发。
步骤二:配置SSL证书
证书签发后,证书状态将变更为已签发,您需要部署SSL证书至服务器并配置证书。关于证书部署和安装的更多信息,请参见SSL证书安装指南。
上传部署SSL证书。
在左侧导航栏,选择。
在云服务器部署页面,单击创建任务,按照以下步骤部署SSL证书。
在基础配置引导页,自定义任务名称,单击下一步。
在选择证书引导页,选择证书类型以及关联云服务器的SSL证书,单击下一步。
在选择资源引导页,选择对应的云服务器和资源,单击下一步。
系统会自动识别并拉取当前阿里云账号下所有符合条件的云服务器实例资源(即云服务器部署了Web应用)。如果仍未显示对应资源,请检查云服务器是否部署了Web应用,例如Nginx,Apache等。
若某个实例之前部署过证书,系统会显示已部署证书的名称。
在部署配置引导页,参考下表部署证书至云服务器,单击确定。
重要如果服务器中不存在对应的证书配置目录,系统将会自动进行创建。控制台配置的路径应当与云服务器Web应用中配置的证书相关文件的路径保持一致。
配置项
描述
配置示例
证书路径
设置证书文件存放在云服务器中的绝对路径。
/data/cert/certpublic.crt
私钥路径
设置证书私钥文件存放在云服务器中的绝对路径。
/data/cert/cert.key
证书链路径
设置证书链文件存放在云服务器中的绝对路径。
/data/cert/certchain.crt
重启命令
在部署证书后,需要重启云服务器中的Web应用或重新加载Web应用配置文件,以使证书生效。因此,您可以设置Web应用的重启或重新加载配置文件命令。
重要执行相关命令时,可能会出现服务启动失败的情况。如果服务启动失败,请前往对应的云服务器进行操作。
无需配置。
在提示对话框,单击确定。
配置SSL证书。
远程连接轻量应用服务器。具体操作,请参见远程连接Linux服务器。
执行以下命令,修改配置文件vhost.conf。
说明本示例WordPress环境中默认安装的是Apache,不同环境的配置文件路径和名称可能不一样,请您以实际环境为准。
sudo vim /etc/httpd/conf.d/vhost.conf
按
i
键,进入编辑模式。在配置文件中增加以下代码。
使用示例代码前,请注意将修改代码中的配置项目:
ServerName:域名,例如:example.com。
DocumentRoot:应用目录,例如:/data/wwwroot/wordpress。
Directory:应用目录,例如:/data/wwwroot/wordpress。
SSLCertificateFile:证书公钥文件路径,例如:/data/cert/certpublic.crt。
SSLCertificateKeyFile:证书私钥文件路径,例如:/data/cert/cert.key。
SSLCertificateChainFile:证书链文件路径,例如:/data/cert/certchain.crt。
重要证书文件路径需要配置正确,否则无法使用HTTPS访问。
配置文件示例如下所示:
#-----HTTPS/SSL template start------------ <VirtualHost *:443> #配置服务器绑定域名 ServerName example.com DocumentRoot "/data/wwwroot/wordpress" #ErrorLog "logs/example.com-error_log" #CustomLog "logs/example.com-access_log" common <Directory "/data/wwwroot/wordpress"> Options Indexes FollowSymlinks AllowOverride All Require all granted </Directory> SSLEngine on #配置SSL证书。证书路径需与部署证书时设置一致。 SSLCertificateFile /data/cert/certpublic.crt SSLCertificateKeyFile /data/cert/cert.key SSLCertificateChainFile /data/cert/certchain.crt </VirtualHost> #-----HTTPS template end------------ #--------------HTTPS/SSL end-----
(条件必选)如果您需要配置让HTTP的请求自动重定向到HTTPS,还需要在<VirtualHost *:80>
代码块中增加以下配置信息。
#----------HTTP for WordPress Start-------- <VirtualHost *:80> ServerName example.com #ServerAlias example.com DocumentRoot "/data/wwwroot/wordpress" ErrorLog "logs/wordpress-error_log" CustomLog "logs/wordpress-access_log" common RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] <Directory "/data/wwwroot/wordpress"> Options Indexes FollowSymlinks AllowOverride All Require all granted </Directory> </VirtualHost> #----------HTTP for WordPress End--------
修改完成后,按
Esc
键,输入:wq!
并按Enter
键,保存修改后的配置文件并退出编辑模式。执行以下命令,重启服务。
sudo systemctl restart httpd
执行以下命令,重启数据库。
sudo service mysqld restart
步骤三:验证SSL证书是否安装成功
在WordPress后台管理页面配置HTTPS域名。
登录WordPress后台管理页面。
后台管理页面地址、用户名、密码的获取方式具体操作,请参见步骤二:配置应用。
在左侧导航栏中,选择 。
在WordPress地址(URL)和站点地址(URL)后,输入您已绑定并解析的域名,本文以
https://example.com
为例。单击保存更改。
说明修改WordPress地址(URL)和站点地址(URL)后,则管理员登录地址变为
https://example.com/wp-login.php
,example.com
需要替换为您的实际域名。
使用浏览器访问
https://轻量应用服务器对应的域名
。
相关文档
不同类型的服务器支持配置的SSL证书格式不同,您可以根据服务器的类型选择安装对应的SSL证书。具体操作,请参见SSL证书安装指南。