Java 使用Apple(Netty)的ServiceTalk作为Jersey和Let的RESTful API';s加密HTTPS

Java 使用Apple(Netty)的ServiceTalk作为Jersey和Let的RESTful API';s加密HTTPS,java,rest,http,netty,servicetalk,Java,Rest,Http,Netty,Servicetalk,因此,基本上,我已经使用苹果公司(Netty实现)和Jersey提供的ServiceTalk制作了一个RESTful API,它可以正常工作。不过只能通过http。我已经看到,当我让我的React网页通过http发出POST请求时,它会抱怨CORS(我仍在尝试修复),并且浏览器(至少是Brave)不允许发出请求,因为它是http,并且我的网页使用let’s encrypt cert在https上运行。如何修复此问题?我需要用Netty添加SSL吗?如果是这样的话,我怎样才能用一个每隔一段时间就会

因此,基本上,我已经使用苹果公司(Netty实现)和Jersey提供的ServiceTalk制作了一个RESTful API,它可以正常工作。不过只能通过http。我已经看到,当我让我的React网页通过http发出POST请求时,它会抱怨CORS(我仍在尝试修复),并且浏览器(至少是Brave)不允许发出请求,因为它是http,并且我的网页使用let’s encrypt cert在https上运行。如何修复此问题?我需要用Netty添加SSL吗?如果是这样的话,我怎样才能用一个每隔一段时间就会改变的证书来做到这一点呢


我还为NGINX设置了Let's Encrypt,并从NGINX+Let's Encrypt的安装向导中启用了自动续订证书设置。如果我能让NGINX以某种方式运行HTTPS请求作为http上netty服务器的代理,那么我认为这也是一个更好的解决方案。我知道这是NodeJS Express+NGINX的常见做法。

你说得对,如果你已经有NGINX为你的静态内容(html/css/js)服务,那么最好将其配置为ServiceTalk后端服务的代理。这将允许您将SSL/TLS配置保留在一个位置(仅限NGINX配置文件),并且您将能够使用其自动续订证书功能。有关如何将NGINX配置为后端服务的SSL/TLS代理的示例,请参见此处:

但是,在这种情况下,NGINX和ServiceTalk之间的连接将不会加密。在某些环境中,根据安全策略和要求,这可能是不合适的。如果是这种情况,您还需要使用返回
HttpServerSecurityConfigurator
HttpServerBuilder.secure()
方法为ServiceTalk配置SSL/TLS。下面是一个例子

为了避免CORS,即使ServiceTalk也配置了SSL/TLS连接,也要继续使用NGINX作为代理。如果需要在浏览器和后端服务之间避免额外的代理,请直接以ServiceTalk为目标。但是NGINX提供了额外的特性,比如多个后端实例之间的负载平衡

为了在ServiceTalk/Netty中获得最佳的SSL性能,我们建议使用提供的OpenSSL,而不是内置的JDK提供程序。有关更多信息,请参阅文档部分


注意:ServiceTalk不会自动续订SSL/TLS证书。当证书过期时,您需要重新启动服务器。

您是对的,如果您已经有了为静态内容(html/css/js)服务的NGINX,则最好将其配置为ServiceTalk后端服务的代理。这将允许您将SSL/TLS配置保留在一个位置(仅限NGINX配置文件),并且您将能够使用其自动续订证书功能。有关如何将NGINX配置为后端服务的SSL/TLS代理的示例,请参见此处:

但是,在这种情况下,NGINX和ServiceTalk之间的连接将不会加密。在某些环境中,根据安全策略和要求,这可能是不合适的。如果是这种情况,您还需要使用返回
HttpServerSecurityConfigurator
HttpServerBuilder.secure()
方法为ServiceTalk配置SSL/TLS。下面是一个例子

为了避免CORS,即使ServiceTalk也配置了SSL/TLS连接,也要继续使用NGINX作为代理。如果需要在浏览器和后端服务之间避免额外的代理,请直接以ServiceTalk为目标。但是NGINX提供了额外的特性,比如多个后端实例之间的负载平衡

为了在ServiceTalk/Netty中获得最佳的SSL性能,我们建议使用提供的OpenSSL,而不是内置的JDK提供程序。有关更多信息,请参阅文档部分


注意:ServiceTalk不会自动续订SSL/TLS证书。证书过期时,您需要重新启动服务器。

我似乎无法使其正常工作。我已经在NGINX中获得了上游设置,但是我的restapi不应该是,并且无法处理NGINX代理的HTTPS请求。我是否错过了一些我不理解的东西?哦,OpenSSL引擎似乎只适用于ServiceTalk的客户端使用,不是吗?我的客户机使用axios库使用React Javascript。如果不知道nginx配置的详细信息,很难说缺少了什么。尝试寻找其他的例子,比如这个:但在本文中,它们将所有内容映射到后端。您需要将一个路径映射为后端代理(例如
location/api
),将另一个路径映射为静态内容(例如
location/static
)。请参阅>OpenSSL引擎似乎只适用于ServiceTalk的客户端使用,不是吗?否,可以为客户端和服务器配置提供的SSL。类路径要求是相同的。您可以跳过构建器配置,因为如果未设置特定的SSL提供程序,它将在类路径中可用时选择OpenSSL。请参见此示例:NGINX配置不起作用。我有500个内部错误。config:The error:Java REST API没有错误或日志。不仅所有这些都是真的,我还必须在前面提到的位置末尾添加一个/。我似乎无法让它正常工作。我已经在NGINX中获得了上游设置,但是我的restapi不应该是,并且无法处理NGINX代理的HTTPS请求。我是否错过了一些我不理解的东西?哦,OpenSSL引擎似乎只适用于ServiceTalk的客户端使用,不是吗?我的客户机使用axios库使用React Javascript。如果不知道nginx配置的详细信息,很难说缺少了什么。尝试寻找其他的例子,比如这个:但在本文中,它们将所有内容映射到后端。您需要将一个路径映射为后端代理(例如
位置/api
),将另一个路径映射为静态内容(