标签: https

使用node.js/express自动进行HTTPS连接/重定向

我一直在努力通过我正在开发的node.js项目来设置HTTPS.我基本上遵循了此示例的node.js文档:

// curl -k https://localhost:8000/
var https = require('https');
var fs = require('fs');

var options = {
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8000);
Run Code Online (Sandbox Code Playgroud)

现在,当我这样做

curl -k https://localhost:8000/
Run Code Online (Sandbox Code Playgroud)

我明白了

hello world
Run Code Online (Sandbox Code Playgroud)

正如所料.但如果我这样做

curl -k http://localhost:8000/
Run Code Online (Sandbox Code Playgroud)

我明白了

curl: (52) Empty reply from server
Run Code Online (Sandbox Code Playgroud)

回想起来,这似乎很明显,它会以这种方式工作,但与此同时,最终访问我的项目的人不会输入https:// yadayada,我希望从他们点击的那一刻起所有流量都是https网站.

我怎样才能将所有传入流量传递给https的节点(以及我正在使用的Express),无论是否指定了它?我找不到任何解决此问题的文档.或者只是假设在生产环境中,节点有一些位于它前面的东西(例如nginx)来处理这种重定向?

这是我第一次涉足网络开发,所以如果这是显而易见的事情,请原谅我的无知.

https node.js express

159
推荐指数
12
解决办法
16万
查看次数

在Cygwin中的HTTPS URL上运行wget时如何修复证书错误?

例如,运行会wget https://www.dropbox.com导致以下错误:

ERROR: The certificate of `www.dropbox.com' is not trusted.
ERROR: The certificate of `www.dropbox.com' hasn't got a known issuer.
Run Code Online (Sandbox Code Playgroud)

https cygwin wget certificate

158
推荐指数
7
解决办法
25万
查看次数

是否有任何HTTP/HTTPS拦截工具,如Mac OS X的Fiddler?

我想知道是否有像fiddler这样的应用程序,但是对于mac OS X,因为我需要在Mac OS X中调试来自Web应用程序的一些请求.我曾经在Windows上使用fiddler进行操作,并且希望有这个工具可用在Mac上也是如此.

debugging macos https http sniffing

154
推荐指数
6
解决办法
14万
查看次数

node.js,带SSL的socket.io

我正在尝试使用我的SSL证书运行socket.io但是,它将无法连接.

我将我的代码基于聊天示例:

var https = require('https');
var fs = require('fs');
/**
 * Bootstrap app.
 */
var sys = require('sys')
require.paths.unshift(__dirname + '/../../lib/');

/**
* Module dependencies.
*/

var express = require('express')
  , stylus = require('stylus')
  , nib = require('nib')
  , sio = require('socket.io');

/**
 * App.
 */
var privateKey = fs.readFileSync('../key').toString();
var certificate = fs.readFileSync('../crt').toString();
var ca = fs.readFileSync('../intermediate.crt').toString();

var app = express.createServer({key:privateKey,cert:certificate,ca:ca });


/**
 * App configuration.
 */

...

/**
 * App routes.
 */

app.get('/', function (req, res) { …
Run Code Online (Sandbox Code Playgroud)

ssl https websocket node.js socket.io

152
推荐指数
5
解决办法
16万
查看次数

接受与自签名证书的HTTPS连接

我正在尝试使用HttpClientlib 进行HTTPS连接,但问题在于,由于证书未由Verisign,GlobalSIgn等公认的证书颁发机构(CA)签署,并列在Android受信任证书集上,我一直在javax.net.ssl.SSLException: Not trusted server certificate.

我已经看到了你只接受所有证书的解决方案,但如果我想询问用户该怎么办?

我想得到一个类似于浏览器的对话框,让用户决定是否继续.我最好使用与浏览器相同的证书库.有任何想法吗?

ssl https android ca httpclient

149
推荐指数
6
解决办法
28万
查看次数

使用领先的双斜杠来继承URL中的协议有什么缺点吗?即src ="// domain.com"

我有一个样式表从外部域加载图像,我需要它从https://从安全订单页面加载http://从其他页面加载,基于当前的URL.我发现使用双斜杠启动URL会继承当前协议.所有浏览器都支持这种技术吗?

html ex:

<img src="//cdn.domain.com/logo.png" />
Run Code Online (Sandbox Code Playgroud)

css ex:

.class { background: url(//cdn.domain.com/logo.png); }
Run Code Online (Sandbox Code Playgroud)

url https http url-protocol

146
推荐指数
3
解决办法
5万
查看次数

IIS7:HTTP-> HTTPS干净利落

是否有一种干净的方法将所有尝试转到HTTP://版本的站点重定向到其HTTPS://等效?

xml https iis-7

145
推荐指数
3
解决办法
7万
查看次数

无法识别的SSL消息,明文连接?例外

我有一个java编译包,可以在网上与https服务器通话.运行编译会产生以下异常:

javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

我认为这是由于与客户端机器建立的连接不安全.有没有办法配置本地机器或端口以连接到远程https服务器?

java https

145
推荐指数
4
解决办法
38万
查看次数

无法找到包装器"https" - 您是否忘记在配置PHP时启用它?

问题在于问题.我已经对这方面的解决方案进行了彻底的调查,我知道有这方面的主题,我也跟着他们,没有任何工作.话虽这么说,我会列出到目前为止我所做的一切.我在Windows XP计算机上的最新Eclipse版本上使用Zend Debugging运行PHP 5.2.14.我有1 GB的RAM.我安装了运行Apache,MySQL和FileZilla的XAMPP.

在XAMPP上我做了以下操作(在这些更改期间Apache已关闭):从XAMPP控制面板单击Admin并转到https:// localhost/xampp/.从那里我在欢迎页面上接受了这一行的证书:

对于OpenSSL支持,请使用https:// 127.0.0.1或https:// localhost的测试证书.

在同一部分,我检查phpinfo().在"环境"下,SERVER["HTTPS"]on.在'Apache Environment'下,HTTPSOn.在"PHP变量"下,_SERVER["HTTPS"]On.在'Phar'下,OpenSSL supportdisabled(安装ext/openssl).我不知道如何启用Phar one.

现在关于C:\ xampp中的文件本身,我去了PHP文件夹.在生产和开发的php.ini文件(防患于未然),我allow_url_fopen=On,allow_url_include=On和我删除了分号,所以extension=php_openssl.dll不再注释掉.我甚至确认.dll位于PHP文件夹的ext文件夹中.libeay32.dll和ssleay32.dll都在PHP和Apache文件夹中.Apache文件夹不包含生产或开发php.ini文件.

为了安全起见,我去了http://www.slproweb.com/products/Win32OpenSSL.html并安装了Win32 OpenSSL v1.0.0d.

现在我的retrieve_website.php中的代码行如下所示:

$urlquery = "https://www.googleapis.com/customsearch/v1?key=".$appid."&cx=".$google_searchid."&q=".$query."&alt=atom&num=".$results;
$xmlresults = file_get_contents($urlquery);
Run Code Online (Sandbox Code Playgroud)

我有两个其他网站,我查询,但他们通过HTTP服务,他们工作正常.我还在脚本末尾附近输入了这行代码:

echo 'openssl: ',  extension_loaded  ('openssl') ? 'yes':'no', "\n";
echo 'http wrapper: ', in_array('http', $w) ? 'yes':'no', "\n";
echo 'https wrapper: ', in_array('https', $w) …
Run Code Online (Sandbox Code Playgroud)

php apache xampp https openssl

136
推荐指数
12
解决办法
21万
查看次数

如何在https网站上的iframe中允许http内容

我将一些HTML加载到iframe中但是当引用的文件使用http而不是https时,我收到以下错误:

[已阻止] {current_pagename}的页面从{referenced_filename}运行了不安全的内容

有什么方法可以关闭它或以任何方式解决它?

iframe没有src属性,内容使用以下方式设置:

frame.open();
frame.write(html);
frame.close();
Run Code Online (Sandbox Code Playgroud)

html security https iframe http

135
推荐指数
6
解决办法
32万
查看次数