1.https://web03.cn/blog/168遇到的问题网上有两种解决方式,我用的第一种方式解决,并配置了SSL安全证书
2.安全证书配置使用腾讯云免费的ssl,每个身份证可以免费领取一年的SSL安全证书
3.进行腾讯云实名认证后领取SSL安全证书
4.安全证书配置来自腾讯云官方文档
5.SSL安装及配置中注意的问题
(1)前端配置SSL证书进行反向代理后端必须也需要配置SSL证书
(2)前端请求接口正式环境必须是有SSL正式的域名映射
(3)443端口需要在阿里云或者腾讯云等服务器的安全组中开启安全组
(4)关闭Linux服务器防火墙或者在Linux服务器防火墙中添加443端口
(5)在同一域内前端访问后端接口不用配置安全证书应该也可以
(6)配置后端和前端的SSL证书需要申请两个SSL安全证书
腾讯云官网链接 :https://cloud.tencent.com/document/product/400/6814
域名型(DV)免费证书申请流程
注册帐号
腾讯云平台申请证书首先需要注册腾讯云账号并且完成实名认证。
申请免费证书
说明:
- 免费证书提供二级域名证书申请。
- 亚洲诚信范围内(不一定在腾讯云申请)的同一主域最多只能申请20张免费证书,申请时请注意该域名是否在其他服务商平台存在亚洲诚信下的证书,避免申请达到上限无法申请。更多详情可参考 免费证书名额相关问题。
- 如需要给二级域名进行配置证书,请您单独对该二级域名进行申请证书。
- 免费证书到期后如需继续使用证书,请重新申请并安装。
- 登录 SSL证书管理控制台,选择【证书管理】>【证书列表】,单击【申请免费证书】。如下图所示:
- 在弹出的【确认证书类型】窗口中,单击【确定】。如下图所示:
- 填写证书申请内容,例如
qcloud.com
,cloud.tencent.com
,demo.test.qlcoud.com
,并单击【下一步】。如下图所示:
- 算法选择:勾选所需证书的加密算法。
- 证书绑定域名:即绑定证书的域名,请填写单个域名。例如 tencent.com、ssl.tencent.com。
- 申请邮箱:请输入您的邮箱地址。
- 证书备注名:可选,请输入证书的备注名称,不可超过200字。
- 私钥密码:可选,为了保障私钥安全,目前不支持密码找回功能,请您牢记私钥密码。
注意:
如需部署腾讯云负载均衡、CDN 等云服务,请勿填写私钥密码。
域名验证指引
操作场景
本文档将指导您在证书管理控制台申请证书或新增域名资料时,如何选择域名验证方式与如何验证域名所有权。
域名验证方式
腾讯云 SSL 证书支持以下域名验证方式:
验证方式 | 使用场景 | 使用限制 |
---|---|---|
自动添加 DNS |
|
须使用腾讯云 DNS 解析 DNSPod 的域名。 |
DNS 验证 | 适用于在任何平台进行解析的域名。 | 需具备域名的解析权限。 |
文件验证 | 使用 DNS 验证存在限制的情况下。 | 操作过程比较复杂,需要一定的建站基础。 |
自动 DNS 验证 |
|
需具备域名的解析权限。 |
自动文件验证 |
|
操作过程比较复杂,需要一定的建站基础。 |
操作步骤
自动添加 DNS
- 如您满足以下场景以及限制条件,则可显示并使用自动添加 DNS 快速帮助您添加解析记录。
- 使用场景
- 新增域名资料。
- 申请部分品牌证书。
- 使用限制:须使用腾讯云 DNS 解析 DNSPod 的域名。
- 使用场景
- 系统将为该域名自动添加指定的 DNS 解析记录,并自动完成域名所有权验证。
- 证书颁发完成或域名信息审核通过后,解析记录可手动清除。
DNS 验证
注意:以下操作仅针对域名对应的域名解析商在腾讯云的情况下,若不在腾讯云,请您到域名对应的域名解析商处进行解析。
- 登录 证书管理控制台。
- 选择【验证中】的证书,单击【查看验证】,进入 “验证域名” 页面,并在规定时间内完成验证操作。如下图所示:
- 添加解析记录。
- 若您的域名(例如
www.tencent.com
)对应的域名解析商在腾讯云。- 请您先找到验证域名(步骤2图例)页面,获取主机记录以及记录值。
- 登录 DNSPod DNS 解析管理控制台 ,查看已申请证书的域名,并单击操作栏的【解析】,进入【记录管理】页面。
- 单击【添加记录】,根据不同证书类型添加 DNS 记录。
- 若您的域名对应的域名解析商不在腾讯云,请您先找到验证域名(步骤2图例)页面,获取主机记录以及记录值,并到域名对应的域名解析商处添加解析记录。
- 若您的域名(例如
- 添加成功后,证书对应域名添加记录值的系统会定时检查,若能检测到并且与指定的值匹配,即可完成域名所有权验证。如下图所示:
说明:
解析生效时间一般为10分钟 - 24小时,但各地解析的最终生效取决于各运营商刷新时间,请您耐心等待。
- 请耐心等待 CA 机构扫描审核。证书颁发完成或域名信息审核通过后,解析记录可手动清除。
文件验证
- 登录 证书管理控制台。
- 选择【验证中】的证书,单击【查看验证】,进入 “验证域名” 页面,并在规定时间内完成验证操作。如下图所示:
- 请您登录服务器,并且确保域名已指向该服务器。
说明:
若您的域名对应的域名解析商在腾讯云,将域名指向您的服务器请参考 A 记录。
- 在网站根目录下,创建指定的文件。该文件包括文件目录、文件名、文件内容。
说明:
网站根目录是指您在服务器上存放网站程序的文件夹,大致这几种表示名称:wwwroot、htdocs、public_html、webroot 等。
- 示例
您的网站根目录为C:/inetpub/wwwroot
,您可以在wwwroot
文件夹下创建一个如下表所示的文件:文件目录 文件名 文件内容 /.well-known/pki-validation fileauth.txt 2019080603......ep939jlu32alzeo - 注意事项
Windows 系统下,需通过执行命令行的方式创建以点开头的文件和文件夹。
例如,创建.well-known
文件夹,请打开命令提示符,执行命令mkdir .well-known
进行创建。如下图所示:
- 示例
- 在 “验证域名” 页面,您可以单击【查看域名验证状态】检查配置是否成功。
说明:
- 支持 HTTP 和 HTTPS,任意一个均可访问。
- 文件验证需要直接响应200状态码和文件内容,不支持任何形式的跳转。
- 请耐心等待 CA 机构扫描审核。证书颁发完成或域名信息审核通过后,文件和目录即可清除。
自动 DNS 验证
注意:以下操作仅针对域名对应的域名解析商在腾讯云的情况下,若不在腾讯云,请您到域名对应的域名解析商处进行解析。
- 登录 证书管理控制台,单击左侧菜单【我的资料】,进入 “我的资料” 管理页面。
- 在 “我的资料” 管理页面,单击需要验证域名信息的公司名称,即可查看已申请的管理人信息。
- 单击您需要验证域名信息的管理人姓名,进入您的 “审核信息” 页面。如下图所示:
- 单击【域名信息】页签,选择您需要进行验证的域名,并单击【查看验证】。如下图所示:
- 在 “验证域名” 页面中,请根据页面提示,并在规定时间内添加解析记录。如下图所示:
- 若您的域名(例如
www.tencent.com
)对应的域名解析商在腾讯云。- 请您先找到验证域名(步骤4图例)页面,获取主机记录以及记录值。
- 登录 DNS 解析 DNSPod 管理控制台 ,查看新增域名,并单击操作栏的【解析】,进入【记录管理】页面。
- 单击【添加记录】,添加 CNAME 解析记录。具体操作请查看 CNAME 记录。
- 若您的域名对应的域名解析商不在腾讯云,请您先找到验证域名(步骤4图例)页面,获取主机记录以及记录值,并到域名对应的域名解析商处添加解析记录。
- 若您的域名(例如
- 添加成功后,请耐心等待 CA 机构扫描审核,若能检测到并且与指定的值匹配,即可完成审核。
说明:
- 解析生效时间一般为10分钟 - 24小时,但各地解析的最终生效取决于各运营商刷新时间,请您耐心等待。
- 配置完成的 CNAME 记录不能进行删除或修改操作,删除或修改之后代理将无效。
- 已配置 CNAME 记录的域名则不能再配置 TXT 记录,否则将可能导致无法通过域名验证。
- 操作过程如果出现问题,请您 联系我们。
- 在 “验证域名” 页面中,您可以单击【立即验证】检查添加 CNAME 解析记录是否成功。
自动文件验证
- 登录 证书管理控制台,单击左侧菜单【我的资料】,进入 “我的资料” 管理页面。
- 在 “我的资料” 管理页面,单击需要验证域名信息的公司名称,即可查看已申请的管理人信息。
- 单击您需要验证域名信息的管理人姓名,进入您的 “审核信息” 页面。如下图所示:
- 单击【域名信息】页签,选择您需要进行验证的域名,并单击【查看验证】。如下图所示:
- 在 “验证域名” 页面中,请根据页面提示,并在规定时间内完成验证操作。如下图所示:
- 请您登录服务器,并且确保域名已添加 A 记录指向该服务器。
说明:
若您的域名对应的域名解析商在腾讯云,将域名指向您的服务器请参考 A 记录。
- 请您在服务器上启动一个 Web 服务(也可在业务运行的 Web 服务上进行配置)并监听端口80或443,将文件验证路径地址反向代理为验证域名(步骤5图例)中提供的反向代理地址。
腾讯云提供以下两种 Web 服务配置指引,您可以根据您实际情况进行参考配置:
说明:
- 支持 HTTP 和 HTTPS,任意一个可访问均可。
- 配置完成的反向代理不能删除或者修改,删除或修改之后代理将无效。
- 可以支持301/302跳转,跳转次数不超过2次,跳转目的地址跟被检测域名需在同一主域。对于 www 开头的二级域名,例如
www.tencent.com
,除了对该域名进行文件验证,还需对其主域名tencent.com
添加文件验证。
- 配置反向代理后,请耐心等待 CA 机构扫描验证,扫描验证成功后即可通过审核。
- 在 “验证域名” 页面中,您可以单击【立即验证】检查配置是否成功。
-
操作场景
本文档指导您如何在 Nginx 服务器中安装 SSL 证书。
说明:- 本文档以证书名称
cloud.tencent.com
为例。 - Nginx 版本以
nginx/1.18.0
为例。 - 当前服务器的操作系统为 CentOS 7,由于操作系统的版本不同,详细操作步骤略有区别。
- 安装 SSL 证书前,请您在 Nginx 服务器上开启 “443” 端口,避免证书安装后无法启用 HTTPS。具体可参考 服务器如何开启443端口?
- SSL 证书文件上传至服务器方法可参考 如何将本地文件拷贝到云服务器。
前提条件
- 已准备文件远程拷贝软件,例如 WinSCP(建议从官方网站获取最新版本)。
- 已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从官方网站获取最新版本)。
- 已在当前服务器中安装配置 Nginx 服务。
- 安装 SSL 证书前需准备的数据如下:
名称 说明 服务器的 IP 地址 服务器的 IP 地址,用于 PC 连接到服务器。 用户名 登录服务器的用户名。 密码 登录服务器的密码。
说明:在腾讯云官网购买的云服务器,您可以登录 云服务器控制台 获取服务器 IP 地址、用户名及密码。
操作步骤
证书安装
- 已在 SSL 证书管理控制台 中下载并解压缩
cloud.tencent.com
证书文件包到本地目录。
解压缩后,可获得相关类型的证书文件。其中包含 Nginx 文件夹和 CSR 文件:- 文件夹名称:Nginx
- 文件夹内容:
1_cloud.tencent.com_bundle.crt
证书文件2_cloud.tencent.com.key
私钥文件
- CSR 文件内容:
cloud.tencent.com.csr
文件说明:CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。
- 使用 “WinSCP”(即本地与远程计算机间的复制文件工具)登录 Nginx 服务器。
- 将已获取到的
1_cloud.tencent.com_bundle.crt
证书文件和2_cloud.tencent.com.key
私钥文件从本地目录拷贝到 Nginx 服务器的/usr/local/nginx/conf
目录(此处为 Nginx 默认安装目录,请根据实际情况操作)下。 - 远程登录 Nginx 服务器。例如,使用 “PuTTY” 工具 登录。
- 编辑 Nginx 根目录下的
conf/nginx.conf
文件。修改内容如下:说明:- 此操作可通过执行
vim /usr/local/nginx/conf/nginx.conf
命令行编辑该文件。 - 由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为
nginx/1.15.0
以上请使用listen 443 ssl
代替listen 443
和ssl on
。
server { #SSL 访问端口号为 443 listen 443 ssl; #填写绑定证书的域名 server_name cloud.tencent.com; #证书文件名称 ssl_certificate 1_cloud.tencent.com_bundle.crt; #私钥文件名称 ssl_certificate_key 2_cloud.tencent.com.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 root html; index index.html index.htm; } }
- 此操作可通过执行
- 在 Nginx 根目录下,通过执行以下命令验证配置文件问题。
./sbin/nginx -t
- 若存在,请您重新配置或者根据提示修改存在问题。
- 若不存在,请执行 步骤7。
- 重启 Nginx,即可使用
https://cloud.tencent.com
进行访问。
HTTP 自动跳转 HTTPS 的安全配置(可选)
如果您需要将 HTTP 请求自动重定向到 HTTPS。您可以通过以下操作设置:
- 根据实际需求,选择以下配置方式:
- 在页面中添加 JS 脚本。
- 在后端程序中添加重定向。
- 通过 Web 服务器实现跳转。
- Nginx 支持 rewrite 功能。若您在编译时没有去掉 pcre,您可在 HTTP 的 server 中增加
return 301 https://$host$request_uri;
,即可将默认80端口的请求重定向为 HTTPS。修改如下内容:说明:- 未添加注释的配置语句,您按照下述配置即可。
- 由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为
nginx/1.15.0
以上请使用listen 443 ssl
代替listen 443
和ssl on
。
server { listen 443 ssl; #填写绑定证书的域名 server_name cloud.tencent.com; #证书文件名称 ssl_certificate 1_cloud.tencent.com_bundle.crt; #私钥文件名称 ssl_certificate_key 2_cloud.tencent.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 root html; index index.html index.htm; } } server { listen 80; #填写绑定证书的域名 server_name cloud.tencent.com; #把http的域名请求转成https return 301 https://$host$request_uri; }
后端代理配置
server {
#SSL端口
listen 443 ssl;
#域名或者ip名
server_name www.baidu.com;ssl_certificate /etc/nginx/conf.d/1_zsts.icreat.co_bundle.crt;
ssl_certificate_key /etc/nginx/conf.d/2_zsts.icreat.co.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#配置代理
location / {
proxy_pass http://后端ip:后端端口;
}
}
server {
#端口号
listen 80;
#域名或者ip
server_name www.baidu.com;
#http请求重定向到https请求
return 301 https://$host$request_uri;
}
- 若修改完成,重启 Nginx。即可使用
http://cloud.tencent.com
进行访问。
- 本文档以证书名称