nginx+springboot配置Https


必须nginx部署的前端和springboot开启的后端都需要配置SSL的密钥认证,这个两个认证最好一样(但是不一样好像也可以,如果密钥认证都下载)

使用javaJDK自带的keytool+openssl生成nginx SSL证书

keytool和Openssl生成密钥

1、使用jdk执行生成keystore密钥对

(-alias别名 –validity 3650表示10年有效,设置大小)

keytool -genkeypair -alias xxx -keyalg RSA -keysize 2048 -validity 3650 -keypass 123456 -storepass 123456 -keystore D://cert//server.keystore

2、把jks证书

keytool -importkeystore -srckeystore D:\cert\server.keystore -destkeystore D:\cert\server.p12 -srcstoretype JKS -deststoretype PKCS12

3、导出 cer证书

keytool -exportcert -file D:\cert\server.cer -alias xxx -keystore D://cert//server.keystore -storepass 123456

4、以下需安装openssl, 并打开openssl命令窗口

#windows下载链接 http://slproweb.com/products/Win32OpenSSL.html

建议下载1.1.1版本,3.0以上版本可能存在兼容性问题

linux查看openssl版本:openssl version

5、将cer格式证书转pem格式
openssl x509 -inform der -in D:\cert\server.cer -out D:\cert\server.pem

6、提取私钥
openssl pkcs12 -nocerts -nodes -in D:\cert\server.p12 -out D:\cert\server.key

nginx SSl配置

在server配置中添加如下内容

ssl_certificate   cert/server.pem;
ssl_certificate_key  cert/server.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

例如:

server {
listen       8081 ssl;
server_name  10.47.101.213;

ssl_certificate cert/server.pem;    
ssl_certificate_key cert/server.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

location / {
root   /home/luxassets/dist; # 路径改成自己的dist路径
try_files $uri $uri/ /index.html;
index  index.html index.htm;
}        

location ^~/api/ {
proxy_pass https://10.47.101.213:8088/; #设置监控后端启动的端口
}
}

测试nginx.conf是否可用

nginx -t

然后重新载入设置

nginx -s reload

java Springboot配置

拷贝密钥库文件home.pkcs12到类路径下:可放在resources目录下,或其他java可查找到的类路径下

application.yml配置:

server:
  port: 8000
  ssl:
    key-store-type: PKCS12
    key-store: classpath:server.p12
    key-alias: xxx
    key-store-password: 123456

或者可以使用server.keystore

server:
  port: 8000
  ssl:
    key-store-type: JKS
    key-store: classpath:server.keystore
    key-alias: xxx
    key-store-password: 123456

问题与解决

nginx配置8081端口异常

为nginx配置8081端口,结果nginx报错。无法启动nginx
(nginx配置8081端口监听,通过查看日志,出现nginx: [emerg] bind() to 0.0.0.0:8081 failed (13: permission denied)异常。但是其它端口监听/访问正常。)

有效的解决方案:

(1)、检查已开放端口

sudo semanage port -l | grep http_port_t

(2)、如果8081端口未出现在列表中,则执行:

sudo semanage port -a -t http_port_t -p tcp 8081

(3)、通过将-a选项替换为-m for modify,将tcp port 8081添加到http_port_t所以有效的命令是:

semanage port -m -t http_port_t -p tcp 8081

centos上配置完nginx后访问报错403 failed (13: Permission denied)

日志报错信息为:“/home/web/manage/dist/index.html” failed (13: Permission denied)

**原因:**selinux的状态为可用状态,所以导致无法访问

解决方法:

3.1、vim /etc/selinux/config

3.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。

3.3、然后重启:reboot

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于SpringBoot的简易问卷调查系统源码+项目说明.zip # Questionnaire ## Introduction 一个基于SpringBoot的简易问卷调查系统 ### Features * 采用Nginx实现前后端分离(并不规范) * 用户管理 * 发布问卷 * 回答问卷 ### ToDo - 后台管理 - 验证码 - 带答案式问卷 - 统计分析 - 导出excel - 权限验证 ### 后端依赖 + SpringBoot 2.1.10 + Mybatis + hutool工具包 + Lombok插件 + PageHelper分页工具 ### 前端依赖 | 框架 | 介绍 | | ------------------------ | ------------------------------- | | BootStrap | 基础的布局框架 | | BootStrap-datetimepicker | 日期选择工具 | | BootStrap-table | 表格显示工具 | | BootStrapValidator | 表单验证工具 | | Jquery | 基础框架,是BootStrap框架的基础 | | Jsrender | 模板引擎,动态生成页面 | | toastr | 提示工具 | ### 开发工具 + IDEA 2018.1.5 ### 如何使用 1. 部署运行环境 * 安装反向代理服务软件Nginx1.14.2,windows或linux版本均可。可参看博文[Nginx简单安装与配置](https://blog.csdn.net/qq_41550842/article/details/103532550),也可自行百度 * 静态html,js,图片等在上面的resource文件夹内,将这些放入服务器中 * Java版本1.8 * mysql5.5 2. 配置文件 * Nginx配置文件,打开nginx.conf文件,进行如下配置 ```nginx server { listen 80; server_name 127.0.0.1; ####需设置服务器ip#### #charset koi8-r; #access_log logs/host.access.log main; location /nginx/ { root html; index index.html index.htm; } #动静分离 location /views/ { ###下面的根目录需要设置为静态资源的根目录,若将代码克隆下来直接放到linux服务器根目录下,则不需要改### root /resource/questionnaire_static_res;#html页面存储位置的根目录 } #该配置是指nginx收到的url中包含/views/的请求,nginx就会去/resource/questionnaire_static_res/views中查找 location /static/ { root /resource/questionnaire_static_res; #同上 } #反向代理,如果nginx匹配完上述两个规则后,未匹配到相应资源,
为了在Spring Boot中使用HTTPS,你需要进行以下几个步骤: 1. 首先,确保你的Nginx服务器已经安装了SSL模块,并且已经配置好了HTTPS。你可以参考中提供的链接来了解如何判断Nginx是否安装了SSL模块以及如何配置HTTPS。 2. 接下来,你需要在Spring Boot应用程序中配置SSL。生成证书配置SSL的一部分。你可以参考中的说明来生成证书。 3. 一旦你生成了证书,你可以在Spring Boot应用程序的配置文件中指定证书的路径和密码。你可以使用以下配置来启用HTTPS: ```properties server.port=443 server.ssl.key-store=/path/to/your/keystore.p12 server.ssl.key-store-password=your_password server.ssl.keyStoreType=PKCS12 ``` 在上述配置中,你需要将`/path/to/your/keystore.p12`替换为你生成的证书的实际路径,并将`your_password`替换为你设置的证书密码。 4. 完成上述配置后,你的Spring Boot应用程序将在HTTPS协议下运行。你可以使用浏览器访问应用程序的URL,它应该是`https://your_domain`。 希望这些步骤能够帮助你在Spring BootNginx中成功使用HTTPS。如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Win10:SpringBoot+Vue+Nginx前后端分离](https://blog.csdn.net/chenyang_wei/article/details/127653574)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [springboot+vue+nginx 配置Https访问——自签名证书验证](https://blog.csdn.net/The_mighty_tiger/article/details/121856300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值