在Nginx中配置https证书
·
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
(1)申请免费证书
1、SSL证书申请以腾讯云为例
地址:https://buy.cloud.tencent.com/ssl




2、需要将提供的解析记录配置到相对应的域名解析设置。

3、DNS验证后,即可下载SSL证书,下载证书后,解压出来,得到Nginx证书

(2)nginx配置https
1、将Nginx文件中的两个文件放到服务器某个路径,比如:/usr/local/nginx/cert/


2、配置Niginx
# 弄个例子,80代理
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /home/app; #前端项目打包后放在这里
index index.html index.htm; #这个index.html 是上面dist目录下的index.html
try_files $uri $uri/ /index.html; # 解决刷新出现404
}
}
server {
listen 80;
listen 443 ssl;
# 该域名需要在配置一条解析记录
server_name www.yourdomain.com;
############ ssl证书 begin ############
ssl_certificate /usr/local/nginx/cert/xxxx.crt;
ssl_certificate_key /usr/local/nginx/cert/xxxx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击
server_tokens off;
#如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
############ ssl证书 end ############
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://localhost:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3、进入Nginx目录的 sbin,重启Nginx
./nginx -s reload
4、需要有两条解析记录(1.DNS解析验证记录;2.域名解析记录)

(3)Nginx安装http_ssl_module模块
Nginx要安装该依赖模块,才能使用ssl
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
#可能需要的依赖包
yum -y install pcre-devel openssl openssl-devel
更多推荐



所有评论(0)