最新Nginx如何支持HTTPS?手把手教会你每一步操作都贼简单,java高级面试

总结

总的来说,面试是有套路的,一面基础,二面架构,三面个人。

最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友

三面蚂蚁金服成功拿到offer后,他说他累了

三面蚂蚁金服成功拿到offer后,他说他累了

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取


Country Name (2 letter code) [XX]:CN # 国家代码

State or Province Name (full name) []:jiangsu # 省份

Locality Name (eg, city) [Default City]:jiangsu # 城市

Organization Name (eg, company) [Default Company Ltd]:macrozheng # 机构名称

Organizational Unit Name (eg, section) []:dev # 单位名称

Common Name (eg, your name or your server’s hostname) []:blog.macrozheng.com # 网站域名

Email Address []:macrozheng@qq.com # 邮箱

Please enter the following ‘extra’ attributes

to be sent with your certificate request

A challenge password []: # 私钥保护密码,可以不输入直接回车

An optional company name []: # 可选公司名称,可以不输入直接回车

  • 生成SSL证书,有效期为365天,生成文件为blog.crt

openssl x509 -req -days 365 -in blog.csr -signkey blog.key -out blog.crt

  • 其实最终有用的文件是两个,一个是证书文件blog.crt,另一个是不需要输入密码的证书私钥文件blog_nopass.key

Nginx支持HTTPS


SSL证书生成好了,接下来我们就可以配置Nginx来支持HTTPS了!

安装Nginx

  • 我们还是使用在Docker容器中安装Nginx的方式,先下载Nginx的Docker镜像;

docker pull nginx:1.10

  • 下载完成后先运行一次Nginx,由于之后我们要把宿主机的Nginx配置文件映射到Docker容器中去,运行一次方便我们拷贝默认配置;

docker run -p 80:80 --name nginx \

-v /mydata/nginx/html:/usr/share/nginx/html \

-v /mydata/nginx/logs:/var/log/nginx \

-d nginx:1.10

  • 运行成功后将容器中的Nginx配置目录拷贝到宿主机上去;

docker container cp nginx:/etc/nginx /mydata/nginx/

  • 将宿主机上的nginx目录改名为conf,要不然/mydata/nginx/nginx这个配置文件目录看着有点别扭;

mv /mydata/nginx/nginx /mydata/nginx/conf

  • 创建的Nginx容器复制完配置后就没用了,停止并删除容器;

docker stop nginx

docker rm nginx

  • 使用Docker命令重新启动Nginx服务,需要映射好配置文件,由于我们要支持HTTPS,还需要开放443端口。

docker run -p 80:80 -p 443:443 --name nginx \

-v /mydata/nginx/html:/usr/share/nginx/html \

-v /mydata/nginx/logs:/var/log/nginx \

-v /mydata/nginx/conf:/etc/nginx \

-d nginx:1.10

配置支持HTTPS

  • 将我们生成好的SSL证书和私钥拷贝到Nginx的html/ssl目录下;

cp blog_nopass.key /mydata/nginx/html/ssl/

cp blog.crt /mydata/nginx/html/ssl/

  • 接下来我们需要给blog.macrozheng.com这个域名添加HTTPS支持,在/mydata/nginx/conf/conf.d/目录下添加Nginx配置文件blog.conf,配置文件内容如下;

server {

listen 80; # 同时支持HTTP

listen 443 ssl; # 添加HTTPS支持

server_name blog.macrozheng.com;

#SSL配置

ssl_certificate /usr/share/nginx/html/ssl/blog/blog.crt; # 配置证书

ssl_certificate_key /usr/share/nginx/html/ssl/blog/blog_nopass.key; # 配置证书私钥

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 配置SSL协议版本

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; # 配置SSL加密算法

ssl_prefer_server_ciphers on; # 优先采取服务器算法

ssl_session_cache shared:SSL:10m; # 配置共享会话缓存大小

ssl_session_timeout 10m; # 配置会话超时时间

location / {

root /usr/share/nginx/html/www;

index index.html index.htm;

}

location /admin {

alias /usr/share/nginx/html/admin;

index index.html index.htm;

}

location /app {

alias /usr/share/nginx/html/app;

index index.html index.htm;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

}

  • 通过HTTPS访问blog.macrozheng.com这个域名,由于我们使用的是自己签名的SSL证书,浏览器会提示您的连接不是私密连接,点击继续前往可以通过HTTPS正常访问;

  • 我们可以查看下证书的颁发者信息,可以发现正好是之前我们创建SSL证书签名请求文件时录入的信息;

  • 接下来我们需要给api.macrozheng.com这个域名添加HTTPS支持,通过这个域名可以使用HTTPS访问我们的SpringBoot应用,api.crtapi_nopass.key文件需要自行生成,在/mydata/nginx/conf/conf.d/目录下添加Nginx配置文件api.conf,配置文件内容如下;

server {

listen 80; # 同时支持HTTP

listen 443 ssl; # 添加HTTPS支持

server_name api.macrozheng.com; #修改域名

#ssl配置

ssl_certificate /usr/share/nginx/html/ssl/api/api.crt; # 配置证书

ssl_certificate_key /usr/share/nginx/html/ssl/api/api_nopass.key; # 配置证书私钥

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 配置SSL协议版本 # 配置SSL加密算法

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

ssl_prefer_server_ciphers on; # 优先采取服务器算法

ssl_session_cache shared:SSL:10m; # 配置共享会话缓存大小

ssl_session_timeout 10m; # 配置会话超时时间

location / {

proxy_pass http://192.168.3.101:8080; # 设置代理服务访问地址

proxy_set_header Host $http_host; # 设置客户端真实的域名(包括端口号)

proxy_set_header X-Real-IP $remote_addr; # 设置客户端真实IP

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 设置在多层代理时会包含真实客户端及中间每个代理服务器的IP

proxy_set_header X-Forwarded-Proto $scheme; # 设置客户端真实的协议(http还是https)

index index.html index.htm;

Kafka进阶篇知识点

image

Kafka高级篇知识点

image

44个Kafka知识点(基础+进阶+高级)解析如下

image

由于篇幅有限,小编已将上面介绍的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(基础+进阶+高级)都整理成册,全部都是PDF文档**

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

**

[外链图片转存中…(img-XV7A5c4B-1715645624826)]

由于篇幅有限,小编已将上面介绍的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(基础+进阶+高级)都整理成册,全部都是PDF文档**

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值