我有Spring Boot(后端)应用程序,它在Tomcat(端口8080)和Angular应用程序(前端)(端口4200)上运行。
前端从后端使用rest API。如何使用带有SSL的Ngin x保护我的应用程序?
我听说我可以在nginx中将我的Spring Boot配置为反向代理,然后用SSL保护它,但我不知道怎么做。
spring boot和nginx都应该配置为获取https。对于java和spring boot,您应该使用keytool创建证书文件,您可以在jdk/bin中找到它。
keytool -genkey -alias <desired certificate alias>
-keystore <path to keystore.pfx>
-storetype PKCS12
-keyalg RSA
-storepass <password>
-validity 730
-keysize 2048
然后把. p12文件放在application.properties.旁边
对于Spring启动,您应该在application.properties或application.yml中添加此选项:
server.ssl.enabled=true
server.ssl.key-store=classpath:client.p12
server.ssl.key-store-password=<password>
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=<desired certificate alias>
之后,我们应该创建证书文件的角和ngin x和添加一些配置,以nginx.conf.创建证书文件,你可以使用openssl工具。
[req]
default_bits = 2048
prompt = no
default_md = sha256
x509_extensions = v3_req
distinguished_name = dn
[dn]
C = US
ST = utah
L = US
O = IT
OU = IT Section
emailAddress = info@example.com
CN = localhost
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.localhost
DNS.2 = localhost
然后打开终端或cmd并运行以下命令:
#!/bin/bash
openssl req \
-newkey rsa:2048 \
-x509 \
-nodes \
-keyout server.key \
-new \
-out server.crt \
-config ./openssl-custom.cnf \
-sha256 \
-days 365
然后将server.key和server.crt放在angular项目中,并将这些代码添加到nginx.conf:
listen 443 ssl;
ssl_certificate <path to .crt file>/server.crt;
ssl_certificate_key <path to .key file>/server.key;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
!要在ngin x中使用ssl,您应该使用端口443而不是80;!用于测试您的角度打开新选项卡并且不要使用旧选项卡
问题内容: 在Angulardocs中,它提到您可以将“超时”配置设置为数字或承诺。 超时 – {number | Promise} –超时(以毫秒为单位),或承诺应在解决后中止请求。 但是我不确定如何使用诺言使这项工作成为现实。我如何设定数字和承诺?基本上,我希望能够知道http调用(承诺)是否由于“超时”或其他原因而出错。我需要能够分辨出差异。谢谢你的帮助 !!! 问题答案: 此代码来自$ht
我阅读了一些教程来在Spring Boot中配置LetsEncrypt SSL证书。我们有一个用spring Boot开发的应用程序。它运行在嵌入式Tomcat8080上。我有另一个角8应用程序,这是运行在默认的4200端口。在JWTToken的帮助下,两个应用程序都能够正确地相互通信。现在我希望我的应用程序/域应该是ssl启用。所以我的问题是,我们是否需要为两个应用程序单独的SSL证书,或者在S
我目前正试图在我当前的Jhipster应用程序中实现ssl。到目前为止,我已经使用keytool-genkey-alias iroApp-storetype PKCS12-keyalg RSA-keysize 2048-keystore密钥库生成了一个证书。p12-有效期3650。 在application-dev.yml中,我更改了以下服务器选项: 致: 代理。conf.json:From }
问题内容: 我们想在不同的环境(阶段/测试,生产等)中使用 Docker映像* 部署 Angular 2 应用程序 * 在本地开发时,我们通过http:// localhost:8080连接到后端REST API,但是当我们在不同的环境中部署时,我们想使用 相同的Docker映像 并连接到 不同的REST API端点 。 什么将是首选的方式 注入 该 配置 成 在运行时多克尔容器 ? 有没有办法通
错误:找不到配置 错误:不推荐使用get/set,而支持config命令。 已安装的软件包版本 更新 下面的命令在图像中给了我一个错误
本文向大家介绍Angular 2 配置路由器出口,包括了Angular 2 配置路由器出口的使用技巧和注意事项,需要的朋友参考一下 示例 现在已经配置了路由器,并且我们的应用程序知道如何处理路由,我们需要显示配置的实际组件。 为此,请为顶级(应用)组件配置HTML模板/文件,如下所示: 该<router-outlet></router-outlet>元素将切换给定路线的内容。关于此元素的另一个好处