当前位置: 首页 > 面试题库 >

如何在Express.js中强制使用SSL / https

丁毅庵
2023-03-14
问题内容

我正在尝试为Express.js创建一个中间件,以将所有非安全(端口80)通信重定向到安全SSL端口(443)。不幸的是,Express.js请求中没有任何信息可让您确定该请求是否来自http或https。

一种解决方案是重定向 每个 请求,但这不是我的选择。

笔记:

  1. 没有可能用Apache或其他东西来处理它。它 必须 在节点中完成。

  2. 应用程序中只能启动 一台 服务器。

您将如何解决?


问题答案:

由于我正在使用nginx,因此可以访问标头的x-forwarded-
proto属性,因此我可以编写一个微型中间件来重定向所有流量,如下所述:http : //elias.kg/post/14971446990/force-ssl-
在Heroku-nginx上使用Express-JS

编辑:更新了网址



 类似资料:
  • 我看到这篇文章给出了使用WebClient将文件上传到ftp的简单想法。这很简单,但如何强制它使用SSL?

  • 问题内容: 我正在运行没有代理并且使用SSL的node.js express 3服务器。 我试图弄清楚如何强制所有连接通过https。 Google搜索向我显示了这一点: https://groups.google.com/forum/#!topic/express- js/Bm6yozgoDSY 当前没有办法强制执行https重定向,尽管这似乎有点奇怪。我们有一个仅使用https的应用程序,并且

  • 问题内容: 如何使用PHP中特定的.htaccess和mod_rewrite页面强制使用SSL / https。 问题答案: 对于Apache,您可以使用强制SSL : 除非为当前连接启用了SSL上的HTTP(即HTTPS),否则该指令禁止访问。这在启用SSL的虚拟主机或目录中非常方便,可防止配置错误暴露应受保护的内容。使用此指令时,将拒绝所有未使用SSL的请求。 不过,这不会重定向到https。

  • 我想使用ArchUnit来强制使用SLF4J日志框架,避免使用简单的系统。out调用。此外,我希望避免使用任何其他日志框架。我该如何实施此类检查? 目前我写了这个测试 但它实际上并没有强制SLF4J的使用,只是限制的使用,并防止依赖于类(实际上常量所在的位置)。 是否是我的案例更优雅的解决方案?

  • 问题内容: 有一个在Tomcat上运行的JDK7应用程序,它具有以下环境设置: 上面的设置可确保在进行API调用等操作时通过HTTPS连接时不使用TLS 1.0。 我们还使用org.springframework.mail.javamail。 JavaMailSenderImpl 类发送外发SMTP电子邮件,并使用以下道具: 问题是,当升级到TLS1.2时,与SMTP电子邮件服务器的连接失败。 j

  • 我在Heroku上成功运行了一个节点应用程序。我已经购买了加急SSL证书,一切正常。我去https...并获得一个完整的“绿色条”,证明该站点是通过https提供服务的 但是,非 SSL 标准 http 仍然可用。如何强制应用通过 https 提供服务?谢谢