我正在研究控制建筑物的光和热的项目。后端(用Java编写)将在Mac Mini上运行,并且应该可以通过SOAP进行访问。
我希望将此项目的复杂性降至最低,因为我不希望每个使用它的人都必须设置应用程序服务器。所以到目前为止,我一直使用javax.xml.ws.Endpoint:
Endpoint endpoint = Endpoint.create(frontendInterface);
String uri = "http://"+config.getHost()+":"+config.getPort()+config.getPath();
endpoint.publish(uri);
这样的效果出奇的好(嘿,您什么时候最后一次只用3行代码看到Java中的东西?),但是现在我正在寻找一种使用HTTPS而不是HTTP的方法。
有没有可以在不使用应用程序服务器的情况下执行此操作的方法,还是有另一种方法可以保护此连接的安全?
问候,Marek
对于服务器:
SSLContext ssl = SSLContext.getInstance("TLS");
KeyManagerFactory keyFactory = KeyManagerFactory .getInstance(KeyManagerFactory.getDefaultAlgorithm());
KeyStore store = KeyStore.getInstance("JKS");
store.load(new FileInputStream(keystoreFile),keyPass.toCharArray());
keyFactory.init(store, keyPass.toCharArray());
TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustFactory.init(store);
ssl.init(keyFactory.getKeyManagers(),
trustFactory.getTrustManagers(), new SecureRandom());
HttpsConfigurator configurator = new HttpsConfigurator(ssl);
HttpsServer httpsServer = HttpsServer.create(new InetSocketAddress(hostname, port), port);
httpsServer.setHttpsConfigurator(configurator);
HttpContext httpContext = httpsServer.createContext(uri);
httpsServer.start();
endpoint.publish(httpContext);
对于客户,请确保您执行以下操作:
System.setProperty("javax.net.ssl.trustStore", "path");
System.setProperty("javax.net.ssl.keyStore", "password");
System.setProperty("javax.net.ssl.keyStorePassword", "password");
System.setProperty("javax.net.ssl.keyStoreType", "JKS");
//done to prevent CN verification in client keystore
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
我需要访问一个使用基本身份验证的HTTPS资源,它是一个GET资源。我用java编写了一段代码,使用,并将用户名、密码等作为标题添加到,并使用Apache访问资源,它运行良好。 现在我的要求是使用Apache Camel实现相同的功能,我尝试使用Camel HTTP组件和Java DSL。
使用 HTTPS HTTPS 即 HTTP over SSL/TLS,是 HTTP 的安全版本,在 HTTP 上加了一层处理加密信息的模块。 SSL/TLS 全称安全传输层协议 Transport Layer Security, 是介于 TCP 和 HTTP 之间的一层安全协议,不影响原有的 TCP 协议和 HTTP 协议,所以使用 HTTPS 基本上不需要对 HTTP 页面进行太多的改造。浏览器
问题内容: 我们有一个有效的Apache mod_ssl配置。我想为Undertow启用HTTPS支持,以便它侦听http和https,从而消除了对Apache的需求。 我研究了Undertow的javadocs。Undertow.Builder类具有两个具有以下签名的addHttpsListener方法: 所以看来我可以在使用Builder API引导Undertow时使用它们,例如 我不确定如
我有一个带有本地IP的专用网络。我想为我的Jenkins服务器启用HTTPS,它是静态IP W.X.Y.Z:8080。 我尝试在 /etc/defaults/jenkins文件中配置以下参数 但是我得到了以下错误。请帮忙 我发现类似的问题解决在这里但它不工作对我来说 编辑1:以下更改已尝试在 /etc/defaults/jenkins文件和重新启动jenkins,但它不适用于我。 https://
我有项目,我在ubuntu服务器上安装了SSL证书。我已经做了我发现的每一个解决方案,但每次打开页面时仍然会收到这条消息。 以下是我为强制Laravel使用https所做的更改: 我变了。htaccess在我的公用文件夹中,并添加了以下行 2-应用程序内- 3-我创建了php artisan make:middleware ForceSSL,并将以下代码添加到句柄函数中 在内核中。php 在里面e
问题内容: 我有一台使用HTTPS且使用Firefox的Grizzly制造的REST服务器。这是代码: 现在,我尝试用Java达到它: 得到: 从我在网上找到的示例来看,似乎需要设置一个Truststore,然后再设置某种TrustManager。对于我这个简单的小项目,这似乎需要大量代码和设置工作。有没有更简单的方法可以说..我信任此证书并指向.cert文件? 问题答案: 当您说“是否有一种更简