风宇博客全站HTTPS配置
原文链接:全站HTTPS配置
关联文章:docker&dockerfile&docker-compose操作
springboot整合webSocket:鉴权,心跳检测,wss请求,nginx配置、集群部署
【Nginx笔记02】通过Nginx服务器转发客户端的WebSocket接口到后端服务
Nginx配置WebSocket
Gateway集成WebSocket 实现前后端通信(全)
Spring Cloud微服务使用webSocket的方法
Spring Boot+Vue前后端分离项目部署笔记
Docker+nginx部署SpringBoot+vue前后端分离项目(保姆及入门指南)
使用docker-compose部署MySQL+Spring Boot+Vue前后端分离项目 - 步骤详细
Docker-compose部署Springboot+Redis+Mysql
【Docker】使用Docker安装Nginx及部署前后端分离项目应用
如何将多个Spring Boot项目打包到一个Docker容器中
超详细SpringBoot+Vue项目部署(两个Vue项目)
超详细Docker部署SpringBoot+Vue项目(三更博客项目部署)
【docker-compose安装nginx并部署前端项目】
Vue项目打包到Spring Boot后部署Tomcat
【SpringBoot高级篇】SpringBoot项目部署到docker环境中
【Docker应用篇】Docker部署SpringBoot项目(Jar包)
【SpringBoot新手篇】SpringBoot项目打包部署
Dockerfile EXPOSE有什么用?
Docker 中无法使用 JDK jmap之 Can’t attach to the process: ptrace(PTRACE_ATTACH问题
Java中JVM常用参数配置教程(提供配置示例)
Linux查看应用Jvm参数的几种方式
jmap heap输出解析
JVM浅析之GC篇
【JVM】JVM参数性能调优 -Xms -Xmx -Xmn -Xss
程序员必须掌握的jar包启动命令详解
启动jar包命令
nohup java -jar后台启动,参数“> /dev/null 2>&1“的含义
idea设置Java程序运行参数
Idea中为java程序添加启动参数(含:VM options、Program arguments、Environment variable)
SpringBoot项目服务器启动 / 关闭脚本
SpringBoot项目启动、停止脚本
Linux使用一个脚本启用、停用springboot项目(本文带脚本)
The value of the ‘Access-Control-Allow-Origin’ header in the response must not be the wildcard '*…
Nginx设置Access-Control-Allow-Origin多域名跨域
Nginx如何配置跨域(多个域名)
Nginx配置跨域请求 Access-Control-Allow-Origin *
Nginx设置Access-Control-Allow-Origin多域名跨域
跨域就这么点事儿
超详细的cookie属性HttpOnly和SameSite引起的漏洞解决方案
Springboot应用中设置Cookie的SameSite属性,跨域支持
浏览器同源策略问题 - Cookie访问限制
Cookie 的 SameSite 属性
Docker 学习笔记(四):练习篇,Linux 中使用 Docker 部署 Nginx,Tomcat,以及 ElasticSearch
文章目录
- 1.申请ssl证书(阿里云为例)
- 2.将ssl文件传输到服务器上
- 3.修改nginx配置
- 4.其他配置
- 5.总结
1.申请ssl证书(阿里云为例)
打开阿里云控制台SSL证书应用
进入后点击SSL证书 -> 免费证书 -> 立即购买
完成后点击创建证书 -> 证书申请
填写好你的相关信息等待申请成功
申请成功后点击下载
选择nginx
下载完解压后会出现pem和key文件
2.将ssl文件传输到服务器上
我这里传输的路径是/usr/local/nginx/cert (没创建的需手动创建)
3.修改nginx配置
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 50m;
client_body_buffer_size 10m;
client_header_timeout 1m;
client_body_timeout 1m;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 4;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
server {
listen 443 ssl;
server_name 前台域名;
ssl on;
ssl_certificate pem文件位置;
ssl_certificate_key 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 /usr/local/vue/blog;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://你的ip:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 443 ssl;
server_name 后台子域名;
ssl on;
ssl_certificate pem文件位置;
ssl_certificate_key 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 /usr/local/vue/admin;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://你的ip:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 443 ssl;
server_name websocket子域名;
ssl on;
ssl_certificate pem文件位置;
ssl_certificate_key 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 / {
proxy_pass http://你的ip:8080/websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 443 ssl;
server_name 上传文件子域名;
ssl on;
ssl_certificate pem文件位置;
ssl_certificate_key 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 /usr/local/upload/;
}
}
server {
listen 80;
server_name 前台域名;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 80;
server_name 后台子域名;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 80;
server_name websocket子域名;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 80;
server_name 上传文件子域名;
rewrite ^(.*)$ https://$host$1 permanent;
}
}
配置好域名和对应上传的pem文件和key文件位置(绝对路径,例/usr/local/nginx/cert/5215670_www.ws.talkxj.com.pem)
启动nginx
docker run --name nginx --restart=always \
-p 80:80 \
-p 443:443 \
-d \
-v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/vue:/usr/local/vue \
-v /usr/local/nginx/cert:/usr/local/nginx/cert \
-v /usr/local/upload:/usr/local/upload nginx
4.其他配置
恢复前端项目下的public下的index.html注释,升级全站https请求
进入后台管理页面 -> 网站配置 -> 其他设置,将websocket域名改为wss协议
5.总结
每个子域名都要配置对应的ssl证书(毕竟白嫖),各个服务商的申请方式可能不一样。然后就是nginx.conf写好对应配置,最后前端升级下https请求就能完成全站https升级啦。