SSL证书申请以及配置流程
申请SSL证书
腾讯云SSL证书申请
https://cloud.tencent.com/document/product/400/6814
- 登陆腾讯云控制台:https://console.cloud.tencent.com/ssl
- 申请免费证书
- 申请免费证书
- 提交资料
- 将生成的SSL域名记录添加到自己指定的域名厂商并添加域名解析。提交后等待机构签发
免费SSL证书
使用Nginx安装SSL证书
https://cloud.tencent.com/document/product/400/35244
获取证书:以下两种获取的证书形式都可以
.crt
证书 +.key
.pem
证书 +.key
将已获取到的
.crt
证书文件和.key
私钥文件从本地目录拷贝到 Nginx 服务器的/usr/local/nginx/conf
目录(此处为 Nginx 默认安装目录,请根据实际情况操作)下。
- 编辑 Nginx 根目录下的
conf/nginx.conf
文件。修改内容如下:
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name cloud.tencent.com;
#证书文件名称
ssl_certificate cloud.tencent.com_bundle.crt;
#私钥文件名称
ssl_certificate_key cloud.tencent.com.key;
ssl_session_timeout 5m;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站运行目录在/etc/www下,则填写/etc/www。
root html;
index index.html index.htm;
}
}
在 Nginx 根目录下,通过执行以下命令验证配置文件问题
/usr/local/nginx/sbin/nginx -t
,若提示找不到ssl模块,则需要安装ssl参考:https://www.cnblogs.com/ghjbk/p/6744131.html
切换到源码包目录
/root/nginx/nginx-1.9.9
执行命令:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
执行命令:
make
这里不要进行
make install
,否则就是覆盖安装然后备份原有已安装好的nginx:
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)
cp ./objs/nginx /usr/local/nginx/sbin/
通过命令查看是否已经加入成功:
/usr/local/nginx/sbin/nginx -V
启动nginx即可
HTTP 自动跳转 HTTPS 的安全配置
server {
listen 80;
#填写绑定证书的域名
server_name cloud.tencent.com;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}
Https下HTTP资源不能访问解决方案
nginx安装了https证书 修改为https访问后,但应用内有些http的,导致一些样式或者页面访问报错,因为https下面默认访问http是会报错的。
解决方案:我们修改下nginx的转发策略,只需在代理转发添加如下配置即可:
Location / {
add_header Content-Security-Policy upgrade-insecure-requests;
}