我已经在我的 Web 应用程序中配置了 SSL。我已经按照所需的步骤在我的 Tomcat 中安装了证书。
我一直关注的导师是https://www.mulesoft.com/tcat/tomcat-security
我已经强制使用 https over http,这意味着任何对 http 的请求都将转发到 https。我在服务器中进行了以下更改.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443"
proxyHost="10.1.1.1" proxyPort="80"
URIEncoding="UTF-8"
maxHttpHeaderSize="32768"/>
网络.xml变化如下:
<security-constraint>
<web-resource-collection>
<web-resource-name>SecureConnection</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
然而,正在发生的重定向是临时重定向,即302。我想使用301重定向,即永久重定向。
我怎样才能做到这一点?
这是在您的 Realm 数据库上配置的。请参阅特定 Realm 实现的 transportGuaranteeRedirectStatus
属性。
https://tomcat.apache.org/tomcat-8.5-doc/config/realm.html
server.xml有这个现成的
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
它不设置 transportGuaranteeRedirectStatus
,因此默认为 302。如果你想让它使用 301,只需将属性 transportGuaranteeRedirectStatus=“301”
添加到顶级 Realm 中(根据您的配置,您可能没有嵌套的 Realm),然后重新启动 Tomcat。
Ex:
<Realm className="org.apache.catalina.realm.LockOutRealm" transportGuaranteeRedirectStatus="301">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" />
</Realm>
如果你的配置中没有定义 Realm 标签,Tomcat 将默认使用 NullRealm。如果你想在这种情况下覆盖重定向,你只需要定义一个 NullRealm,并在它上面设置了 transportGuaranteeRedirectStatus
属性。
希望这有帮助!
奇怪的问题。我使用FullCalendar向服务器上的endpoint发起ajax请求。终点是: 请注意,它是显式的HTTPS。但是,当我发起一个请求时(即当Fullcalendar发起一个请求时),我会得到一个301和一个到非HTTPSendpoint的重定向: 因为页面是通过HTTPS加载的,所以失败。 endpoint工作正常--当我将它加载到浏览器中时,我会得到预期的json输出(通过ht
我一直在寻找完美的301重定向。但我发现了这么多的解决方案,不知道什么是最好的。 这是我想做的 http://domain.tld/ → https://domain.tld/ http://www.domain.tld/ → https://domain.tld/ https://www.domain.tld/ → https://domain.tld/ 最佳实践。 这是我喜欢的代码。至少现在是
问题内容: 我已经设置了TLS,它可以工作。我知道如何在nginx中从http重写为https,但是我不再使用nginx。我不知道如何在Go中正确执行此操作。 我将如何以一种好的方式做到这一点? 问题答案: 创建一个处理程序,以处理重定向到https的操作,例如: 然后重定向http流量:
RewriteCond%{SERVER\u PORT}上的RewriteEngine!443重写规则^(/(.*)?$https://%{HTTP_HOST}/$1[R=301,L] 这是我在. htaccess文件中使用的命令,当我键入arion-software.co.uk它不能正确重定向。任何想法?
我的服务器正在从http重定向到HTTPS。我希望允许使用http和HTTPS访问我的应用程序。我怎么能这么做?在我的Wildfly8.2日志中有这样两行:
问题内容: 我正在一个购物车网站上工作,我想在用户输入帐单明细时将用户重定向到HTTPS页面,并保持下一页的HTTPS连接,直到他注销。 为此,我需要在服务器上安装什么(我正在使用Apache),如何从PHP进行重定向? 问题答案: 尝试这样的事情(应该适用于Apache和IIS):