当前位置: 首页 > 知识库问答 >
问题:

在Angular中配置SSL

滕翔飞
2023-03-14

我有Spring Boot(后端)应用程序,它在Tomcat(端口8080)和Angular应用程序(前端)(端口4200)上运行。

前端从后端使用rest API。如何使用带有SSL的Ngin x保护我的应用程序?

我听说我可以在nginx中将我的Spring Boot配置为反向代理,然后用SSL保护它,但我不知道怎么做。

共有1个答案

栾峰
2023-03-14

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>元素将切换给定路线的内容。关于此元素的另一个好处