针对个人博客网站升级https,整理了下http和https的一些分析,以及配置方法
域名型(DV)免费 SSL 证书
参考:文档中心 > SSL 证书 > 证书申请 > 域名型(DV)免费 SSL 证书申请流程
DNS 验证
参考:文档中心 > SSL 证书 > 域名验证 > DNS 验证
Nginx 服务器 SSL 证书安装部署
说明:
- 以证书名称
cloud.tencent.com
为例 - Nginx 版本以
nginx/1.20.0
为例。 - 当前服务器的操作系统为 CentOS 7.6
- 安装 SSL 证书前,在 Nginx 服务器上开启 “443” 端口
证书安装
请在 SSL 证书管理控制台 中选择您需要安装的证书并单击下载。
在弹出的 “证书下载” 窗口中,服务器类型选择 Nginx,单击下载并解压缩cloud.tencent.com证书文件包到本地目录。解压缩后,可获得相关类型的证书文件。其中包含cloud.tencent.com_nginx 文件夹:
- 文件夹名称:
cloud.tencent.com_nginx
- 文件夹内容:
cloud.tencent.comm_bundle.crt
证书文件cloud.tencent.comm_bundle.pem
证书文件cloud.tencent.comm.key
私钥文件cloud.tencent.comm.csr
CSR 文件
- 文件夹名称:
使用 “WinSCP”(即本地与远程计算机间的复制文件工具)登录 Nginx 服务器。
将已获取到的
cloud.tencent.com_bundle.crt
证书文件和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
。
- 此操作可通过执行
1 | server { |
在 Nginx 根目录下,通过执行以下命令验证配置文件问题
有可能,nginx启动报”ssl parameter requires ngx_http_ssl_module”
解决方案:
问题分析
原因:nginx缺少http_ssl_module模块,编译安装的时候带上–with-http_ssl_module配置就行了,但是现在的情况是我的nginx已经安装过了,怎么添加模块?以我的nginx为例子
①nginx的安装目录是/usr/local/nginx这个目录,
②源码包在/usr/local/nginx/nginx-1.20.1目录解决过程
注:
1、如果是使用yum 安装等方式,找不到源码包,需要下载当前安装相同版本的源码包:1
wget http://nginx.org/download/nginx-1.8.0.tar.gz
2、 切换到源码目录:
1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
3、编译 :
make
(这里不要进行make install,否则就是覆盖安装)4、 备份原来nginx配置文件
1
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
5、保证nginx是关闭状态
1
2ps -elf | grep nginx
pkill -9 nginx6、复制刚编译生成的配置覆盖原有的配置
1
cp ./objs/nginx /usr/local/nginx/sbin/
7、启动nginx :
1
/usr/local/nginx/sbin/nginx
8.重启 Nginx,即可使用 https://cloud.tencent.com
进行访问
HTTP 自动跳转 HTTPS 的安全配置(可选)
将 HTTP 请求自动重定向到 HTTPS。您可以通过以下操作设置:
- 根据实际需求,选择以下配置方式:
- 在页面中添加 JS 脚本。
- 在后端程序中添加重定向。
- 通过 Web 服务器实现跳转。
- Nginx 支持 rewrite 功能。若您在编译时没有去掉 pcre,您可在 HTTP 的 server 中增加
return 301 https://$host$request_uri;
,即可将默认80端口的请求重定向为 HTTPS。修改如下内容:
1 | #在原有基础上增加 |
- 若修改完成,重启 Nginx。即可使用
http://cloud.tencent.com
进行访问。
解开了