我需要从客户端进行 HTTPS 调用。我不需要将证书发送到服务器,只需要验证来自服务器的证书。
我研究了这个话题,这是我的理解。你能确认一下吗?我还没有测试服务来验证我的代码......但仍然需要满足最后期限......任何建议/输入都会有所帮助。
我将此添加到我的班级中:
private static String appKeyFile = "/project/src/security/cert_file.jck";
private static String key = "password";
static {
System.setProperty("javax.net.ssl.keyStore", appKeyFile);
System.setProperty("javax.net.ssl.keyStorePassword",key);
System.setProperty("javax.net.ssl.keyStoreType","JCEKS");
}
Run Code Online (Sandbox Code Playgroud)
并按如下方式进行 HTTPS 调用:
config = new DefaultClientConfig();
client = Client.create(config);
service = client.resource(UriBuilder.fromUri("https://localhost:8081/TestService").build());
clientResponse = service.path("rs").path("test").path("getCustomerDetail")
.accept(MediaType.APPLICATION_XML)
.post(ClientResponse.class, customerRequestType);
if (clientResponse.getStatus() == Response.Status.OK.getStatusCode()) {
custResponseType = clientResponse.getEntity(CustResponseType.class);
System.out.println("First Name" +
custResponseType.getFirstName());
}
Run Code Online (Sandbox Code Playgroud)
从 SSL/HTTPS/certs 等角度来看,这是否足够(调试除外)?我还有什么需要做的吗,比如加载密钥库或初始化 SSLContext?
我有兴趣记录来自端口 443 的所有流量,以便对我们正在处理的某些连接处理/阻塞进行故障排除。记录所有 https / 端口 443 流量的最佳方法是什么(即使一开始就完整性来说有点矫枉过正)?
哦...这将在网关/路由器上进行记录...因此它将记录从 LAN 端进入的所有流量。在这种情况下,不关心 WAN 端 - 只想记录来自 LAN 端的所有传出流量。我知道我不会看到它的内容 - 我只想看到它们通过 iptables 的连接(源 IP 和目标 IP)。
我正在为 Android 上的 https 请求苦苦挣扎。
我们有一个由 CA 签署的有效 SSL 证书,这是众所周知的,https 请求不起作用,它们返回一个错误。以前我使用 Phonegap build 构建应用程序并且没有问题,现在我需要包含一个通知插件(用于工具栏通知),因此该应用程序需要通过 Eclipse 构建。相同的 url 对 http 工作正常,但一旦使用 https,所有请求都会失败。
同样,当我第一次在手机上的浏览器中尝试链接时,它弹出了一个关于证书无效的警告,但我 100% 确定证书有效并且签名正确。
有没有一种简单的方法可以在不影响安全性的情况下使这些 https 请求正常工作?
有谁知道 phonegap build 与 Eclipse 有什么不同?
我做了一些更多的研究,似乎没有安装中间证书可能有问题。我仍在尝试找出我们是否确实安装了它。我想我会提供更新以防万一有人遇到同样的问题。
我试图得到它,以便任何请求:
http://<myserver>:1234
被重定向到:
https://<myserver>:1234
我试过在模块中使用“this.RequiresHttps()”,但是当我点击 url 时http://<myserver>:1234
,浏览器只是旋转,我猜这是因为我没有NancyHost
用 HTTP URI构造。我无法将 HTTP URI 与 HTTPS URI 一起添加到 NancyHost,如下所示:
var host = new NancyHost(new Uri("http://localhost:1234"), new Uri("https://localhost:1234"));
因为我会遇到注册冲突。
有任何想法吗?
我正在 symfony 2 中的内置 Symfony2 服务器 ( app/console server:run
) 中开发我的新项目。是否可以在此服务器上使用 https 运行我的网站?
在我的脚本中,我使用库 LuaSocket 发送 XML 代码。这适用于以下代码:
local request_body = (XMLHeader..XMLBody);
local response_body = {}
local res, code, response_headers = socket.http.request
{
url = "http://blabla.com/v01/Authenticatie.svc";
method = "POST";
headers =
{
["Content-Type"] = "application/soap+xml; charset=utf-8";
["Content-Length"] = string.len(request_body);
["Accept-Encoding"] = "gzip, deflate";
["Connection"] = "Keep-Alive";
};
source = ltn12.source.string(request_body);
sink = ltn12.sink.table(response_body);
}
Run Code Online (Sandbox Code Playgroud)
但是现在我将使用带有证书的协议 HTTPS 发送 XML。我知道我可以使用 LuaSec 但如何使用?有人可以告诉我,我如何将代码修改为 HTTPS 的工作代码?
我有关于Node.js HTTPS请求的问题.请求转到服务器,该服务器将返回JSON响应.然后我想解析响应并将其存储在变量中并与其他函数一起使用.
let obj=JSON.parse(response);
return obj;
Run Code Online (Sandbox Code Playgroud)
我写的功能:
let protocol="https";
let hostStr="www.example.com";
let pathStr="***";
let students=makeRequest("ABCDEFG","getStudents"));
console.log(students);
function makeRequest(token,method){
let obj='';
let options={
host:hostStr,
path:pathStr,
method:"POST",
headers:{"Cookie":"JSESSIONID="+token}
};
let https=require(protocol);
callback = function(response){
var str='';
response.on('data',function(chunk){
str+=chunk;
});
response.on('end',function(){
obj=JSON.parse(str);
});
}
let request=https.request(options,callback);
request.write('{"id":"ID","method":"'+method+'","params":{},"jsonrpc":"2.0"}');
request.end();
return obj;
}
Run Code Online (Sandbox Code Playgroud)
我希望你能帮帮我
运行新创建的基于IdentityServer4 Asp.Net Core的服务器.它"工作"的意义是它在没有HTTPS的情况下工作,无论是在进行身份验证的调用中还是为了提供一些Asp.Net MVC视图.我将其切换为使用HTTPS进行本地开发环境,根据本文生成证书.
从浏览器,它"工作".我能够像Chrome那样的文章建议并绕过安全警告来获取Web视图.但是,从.Net客户端我使用IdentityModel NuGet包,只是尝试使用Discovery Endpoint访问元数据现在失败了.服务器提供"无法验证HTTPS连接"IOException,并且客户端提供"证书颁发机构无效或不正确"HttpRequestException.
我猜这与浏览器中的事物是交互式的事实有关,我可以告诉它忽略警告并继续.但是在代码中,特别是使用该库,它给了我异常而不是继续.也许.
有没有办法处理这种使用HTTPS和自签名证书更好地运行IdentityServer4/AspNetCore的方案?有没有可以用DiscoveryClient做的事情,我没有看到?
这个问题很相似,但在这种情况下重新生成证书并没有帮助.我想知道IdentityServer/DiscoveryClient角度是否还有其他原因或见解.
我正在尝试将我的网站从http迁移到https。该体系结构是:在Nginx服务器(侦听端口80)上运行的angularJS Webapp前端,它将请求发送到在Puma服务器(侦听端口8080)上运行的Rails API应用。两台服务器都一起位于Amazon EC2实例中。
这是我第一次迁移到HTTPS,我一点也不熟练。读了很多书,我取得了一些进步,但现在我陷入了困境。
我想确认我是正确的方法还是错误的方法。
在这一刻:
现在(这仅在开发中,而不是在AWS实例中工作)为了保护后端Puma服务器,我采用了一种非常简单的方法:由于Rails API是私有的,因此我创建了一个自签名SSL证书,并仅使用它来启动这样的Puma服务器:
捆绑执行程序puma -b'ssl://127.0.0.1:3000?key = puma.server.key&cert = puma.server.crt'-e开发-S〜/ puma -C config / puma / development.rb
如前所述,这正在开发中。我的Nginx服务器正在侦听443,并将请求发送到在端口3000侦听的Puma。
因此,在这一点上,我想知道我是否采用了正确的方法,但是我只是缺少了一些东西,否则,对于EC2实例来说这是错误的方法,我需要做一些真正不同的事情。注意:我已经阅读了一些有关如何配置Nginx服务器以代理https的内容,但目前还不太了解。我应该这样走吗?
@ffeast回答后的评论和问题:
我了解您的做法。我建议采用第二种方法。但是,我有一些问题:
我是否可以解决通过这种方法获得的blocked:mixed-content错误?为什么?我的意思是,Rails API请求是否应该更改?注意:目前,在Angular中,我有一些资源可以发送请求,例如:// domain-name:8080 / action,而Puma服务器正在侦听该端口中的请求。我目前没有任何代理通行证。
我认为您包括连接到Puma套接字的de Nginx配置,我想我需要创建此Puma套接字,我将需要检查如何做。如果您知道包含示例将有帮助。如果使用此套接字配置Puma,是否需要在特定端口中启动Puma?
我试图理解整个图片,但我仍然困惑:3.1对API的请求(来自Angular Nginx)应该是什么样的?3.2是否应该在特定端口上启动Puma?我不知道套接字方法是否需要... 3.3以及代理传递配置应如何匹配这些请求。
您能否澄清一下可能会更新您的示例?假设目前的请求就像// domain-name:8080 / action
更新 我正在尝试配置Ningx以将请求传递给PUMA套接字(目前正在开发中)。我遇到了错误,请查看一篇新文章以保持此整洁:Nginx代理传递给Rails API
更新2 它正在工作!我的网站安全无误!这是我的配置。
upstream api.development {
# Path to Puma SOCK file, as defined previously
server unix:/tmp/puma.sock fail_timeout=0;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /keys/ssl/development.server.crt;
ssl_certificate_key /keys/ssl/development.server.key;
# ssl_session_cache shared:SSL:1m; …
Run Code Online (Sandbox Code Playgroud) 这花了我一段时间才能弄清楚,所以我想我会留下一些说明,说明如何完成此操作,以防其他人遇到相同的问题。
我需要允许Express中的.well-known目录访问目录,以便能够使用certbot生成SSL证书。