本文以使用WordPress 5.6.2的轻量应用服务器为例,介绍在服务器中安装SSL证书,并开启HTTPS加密访问。
已创建轻量应用服务器。具体操作,请参见快速搭建WordPress个人博客。
已购买域名。通过阿里云购买域名的操作,请参见注册通用域名。
如果您的轻量应用服务器部署在中国内地,需要确保域名已备案。更多信息,请参见什么是ICP备案。
域名已经绑定到轻量应用服务器并完成域名解析。具体操作,请参见绑定并解析域名。
通过数字证书管理服务(Certificate Management Service)完成证书购买、申请,并将证书部署到您的Web服务器后,Web服务将会通过HTTPS加密协议来传输数据。HTTPS加密传输协议可激活客户端浏览器到网站服务器之间的SSL加密通道(SSL协议),从而实现高强度单向加密传输,防止传输数据被泄露或篡改。HTTPS加密传输为手机APP、小程序应用、代码程序、控件等上线应用市场或应用生态必备特征。HTTPS加密传输可为网站带来以下优势:
安全合规:满足对应App市场或应用生态的要求。
加密传输网络数据:加密网站用户与网站间的数据通信,实现传输数据的防劫持、防篡改、防监听,保障数据传输安全。
提升网站安全性:规避钓鱼事件发生。网站用户在访问网站时浏览器提示安全可信,可以提升网站的可信度、访问流量和搜索排名。
阿里云支持申请免费证书、付费证书或者在其他服务商申请的证书。免费证书建议用于测试、个人试用等场景,org、jp等特殊域名存在无法申请的情况,正式环境建议使用付费正式证书,本步骤以申请免费证书为例介绍。如果您需要申请付费正式证书,请参见购买SSL证书。
登录数字证书管理服务控制台。
在左侧导航栏,选择。
在个人测试证书(原免费证书)页签,单击立即购买。
在立即购买面板,参考下表购买个人测试证书,仔细阅读并勾选服务协议,单击立即购买并完成支付。
配置项 |
描述 |
免费版个人测试证书领取示例 |
产品 |
关于正式证书和个人测试证书区别,请参见个人测试证书说明。 |
个人测试证书 |
证书类型 |
|
个人测试证书(免费版) |
服务 |
仅个人测试证书(免费版)显示。 |
保持默认 |
购买数量 |
|
保持默认 |
其他服务 |
申请协助和部署服务可以为您解决在使用SSL证书时遇到的各种问题。在申请证书时,协助您梳理申请材料,并主动与CA签发机构进行协调,以确保证书在最短时间内签发。如果您不具备安装或配置证书的能力,专家可为您提供视频远程指导,帮助您快速定位问题,解决您的技术难题。更多信息,请参见购买证书申请协助和部署服务。
|
不需要 |
登录数字证书管理服务控制台。
在左侧导航栏,选择。
在SSL证书页面,单击个人测试证书(原免费证书)页签。
在个人测试证书(原免费证书)页签,单击创建证书。
在证书申请面板,配置证书参数,选中快捷签发,单击提交审核。
在证书申请面板,按照下表配置证书参数,选中快捷签发,并单击提交审核。
配置项 |
说明 |
|
证书类型 |
选择个人测试证书(免费版)。 |
|
证书剩余数量/总数 |
表示剩余可申请的证书个数/总共可申请的证书个数。只有当剩余可申请的证书个数不为0时,您才可以创建证书。 |
|
域名名称 |
填写该证书用于保护的网站域名。 申请个人测试证书时,此处只可以填写一个单域名,例如, |
|
数量 |
证书数量,默认为1,不支持增加。 |
|
快捷签发 |
域名验证方式 |
|
联系人 |
从下拉列表中选择本次证书申请的联系人(包含邮箱、手机号码等联系信息)。 如果您未创建过联系人,可以单击新建联系人,新建一个联系人。数字证书管理服务会保存新建的联系人信息,方便您下次使用。关于新建联系人的具体配置,请参见管理联系人。 |
|
所在地 |
选择申请人所在城市或地区。 |
|
密钥算法 |
证书使用的密钥算法。 默认选择为RSA,且不支持修改。RSA算法是目前在全球应用广泛的非对称加密算法,兼容性好。 |
|
CSR生成方式 |
CSR(Certificate Signing Request)文件是您的证书请求文件。该文件包含您的SSL证书信息,例如,证书绑定的域名、证书持有主体的名称及地理位置信息等。 您向CA中心提交证书申请时,必须提供CSR。CA中心审核通过您的证书申请后,将使用其根CA私钥为您提供的CSR签名,生成SSL证书公钥(即签发给您的SSL证书)。SSL证书的私钥即您在生成CSR时同时生成的私钥。 您可以选择以下CSR生成方式:
|
|
CSR文件内容 |
只有在CSR生成方式为手动填写或选择已有的CSR时,需要配置该参数。在此处填写您的CSR文件内容。 |
按照验证信息中的提示,完成域名所有权的验证。
域名所有权验证成功后,证书通常会在1~2个工作日完成签发,最快10分钟内签发。证书签发后,证书状态将变更为已签发。如果SSL证书长时间未签发,请您检查DNS验证配置是否正确。域名所有权验证更多信息和常见报错,请参见域名所有权验证。
证书签发后,证书状态将变更为已签发,您需要部署SSL证书至服务器并配置证书。关于证书部署和安装的更多信息,请参见SSL证书安装指南。
上传部署SSL证书。
在左侧导航栏,选择。
在云服务器部署页面,单击创建任务,按照以下步骤部署SSL证书。
在基础配置引导页,自定义任务名称,单击下一步。
在选择证书引导页,选择证书类型以及关联云服务器的SSL证书,单击下一步。
在选择资源引导页,选择对应的云服务器和资源,单击下一步。
系统会自动识别并拉取当前阿里云账号下所有符合条件的云服务器实例资源(即云服务器部署了Web应用)。如果仍未显示对应资源,请检查云服务器是否部署了Web应用,例如Nginx,Apache等。
若某个实例之前部署过证书,系统会显示已部署证书的名称。
在部署配置引导页,参考下表部署证书至云服务器,单击确定。
配置项 |
描述 |
配置示例 |
证书路径 |
设置证书文件存放在云服务器中的绝对路径。 |
/usr/local/nginx/conf/ssl/cert.pem
|
私钥路径 |
设置证书私钥文件存放在云服务器中的绝对路径。 |
/usr/local/nginx/conf/ssl/cert.key
|
证书链路径 |
设置证书链文件存放在云服务器中的绝对路径。 |
无需配置。
|
重启命令 |
在部署证书后,需要重启云服务器中的Web应用或重新加载Web应用配置文件,以使证书生效。因此,您可以设置Web应用的重启或重新加载配置文件命令。 |
无需配置。 |
在提示对话框,单击确定。
配置SSL证书。
远程连接轻量应用服务器。具体操作,请参见远程连接Linux服务器。
执行以下命令,修改WordPress配置文件wordpress.conf。
sudo vim /usr/local/nginx/conf/vhost/wordpress.conf
按i
键,进入编辑模式。
在配置文件server{}
代码段中配置证书路径。
修改后的配置文件示例如下所示:
server { listen 80; listen [::]:80; listen 443 ssl http2; listen [::]:443 ssl http2; #配置SSL证书路径。证书路径需与部署证书时设置一致。 ssl_certificate /usr/local/nginx/conf/ssl/cert.pem; ssl_certificate_key /usr/local/nginx/conf/ssl/cert.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; ssl_session_timeout 10m; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_buffer_size 1400; add_header Strict-Transport-Security max-age=15768000; ssl_stapling on; ssl_stapling_verify on; server_name _; access_log /data/wwwlogs/wordpress_nginx.log combined; index index.html index.htm index.php; root /data/wwwroot/wordpress; #if ($ssl_protocol = "") { return 301 https://$host$request_uri; } #if ($host != www.example.com) { return 301 $scheme://www.example.com$request_uri; } include /usr/local/nginx/conf/rewrite/wordpress.conf; #error_page 404 /404.html; #error_page 502 /502.html; location ~ [^/]\.php(/|$) { #fastcgi_pass remote_php_ip:9000; fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { expires 30d; access_log off; } location ~ .*\.(js|css)?$ { expires 7d; access_log off; } location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|LICENSE|README\.md) { deny all; } }
修改完成后,按Esc
键,输入:wq!
并按Enter
键,保存修改后的配置文件并退出编辑模式。
执行以下命令,重启Nginx服务。
sudo systemctl reload nginx
运行以下命令,重启数据库。
sudo service mysqld restart
在WordPress后台管理页面配置HTTPS域名。
登录WordPress后台管理页面。
后台管理页面地址、用户名、密码的获取方式具体操作,请参见步骤二:配置应用。
在左侧导航栏中,选择 。
在WordPress地址(URL)和站点地址(URL)后,输入您已绑定并解析的域名,本文以https://example.com
为例。
单击保存更改。
使用浏览器访问https://轻量应用服务器对应的域名
。