1.前言
在腾讯云购买域名后,一般会免费送一年的SSL,那么在域名备案完成后,可以给http协议添加ssl协议,这样一来,访问域名的时候,网页就会自动以https开头。下面将以nginx服务器为例详细介绍部署ssl证书步骤。
2.前提条件
- 已准备文件远程拷贝软件,这里使用的是lrzsz(可参考mac上传文件到CentOS云服务器这篇文章)
- 已准备远程登录工具,这里使用ssh远程登录linux服务器。
- 已在当前服务器中安装配置 Nginx 服务。
- 安装 SSL 证书前需准备的数据如下:
名称 | 说明 |
---|---|
服务器的 IP 地址 | 服务器的 IP 地址,用于 PC 连接到服务器。 |
用户名 | 登录服务器的用户名。 |
密码 | 登录服务器的密码。 |
3.操作步骤
证书安装
1.在 SSL 证书管理控制台中下载并解压证书文件包到本地目录。
解压缩后,可获得相关类型的证书文件。
- 文件夹名称:Nginx
- 文件夹内容:
- 1_cloud.tencent.com_bundle.crt 证书文件
- 2_cloud.tencent.com.key 私钥文件
2.在终端中使用 “ssh”登录 Nginx 服务器。
3.将已获取到的 .crt 证书文件和 .key 私钥文件从本地目录拷贝到 Nginx 服务器的nginx和nginx.conf同级目录下(此处为 Nginx 默认安装目录,请根据实际情况操作)。
可采取如下办法找到该目录:
# 通过find / -name nginx.conf来找到nginx安装路径
find / -name nginx.conf
此时发现有两个路径都有nginx.conf文件,可通过nginx -t查询nginx存放文件的路径
nginx -t
查看运行结果:
现在我们可以看到,配置文件在/etc/nginx下,那么就把 .crt 证书文件和 .key 私钥文件通过lrzsz从本地直接上传到nginx这个目录中,如图:
rz
以此选择即可完成上传
然后可以在nginx目录中使用find / -name *.crt 和 find / -name *.key查询一下文件是否上传成功
find / -name *.crt
find / -name *.key
4.ssh远程登录 Nginx 服务器。
ssh <您的服务器默认账号>@<您的服务器IP地址>
输入密码后登陆到linux服务器
5.编辑 Nginx 根目录下的 nginx.conf 文件。修改内容如下:
说明:
此操作可通过执行 vim /etc/nginx/nginx.conf 命令行编辑该文件。
由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on。
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名,可以同时填写带www和不带www的域名,以空格隔开
server_name <您的域名>;
#证书文件名称
ssl_certificate .crt文件名;
#私钥文件名称
ssl_certificate_key .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;
}
}
6.在 Nginx 根目录下,通过执行以下命令验证配置文件问题。
nginx -t
重启 Nginx,即可使用 https://<您的域名> 进行访问。
HTTP 自动跳转 HTTPS 的安全配置
如果您需要将 HTTP 请求自动重定向到 HTTPS。您可以通过以下操作设置:
根据实际需求,选择以下配置方式:
直接在nginx.conf页面中添加 json。
修改如下内容:
server {
listen 80;
#填写绑定证书的域名,可以同时填写带www和不带www的域名,以空格隔开
server_name <您的域名>;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}
修改完成后,重启 Nginx。即可使用 http://<您的域名>进行访问,网页会自动跳转至https://<您的域名>。
看到这个页面即代表部署成功
PS:如果想直接输入域名也能通过https访问,则需要在域名解析中,添加一个主机记录带@的