需要帮助以确保我们的 Wildfly 10 服务器(安装在 Ubuntu 16.04.1 LTS 上)仅支持 TLS v1.2 及更高版本。
如何检查当前的 ssl 证书版本?
我们通过编辑 standalone.xml 在我们的服务器中启用了 https
<security-realms>
<security-realm name="ManagementRealm">
<authentication>
<local default-user="$local" skip-group-loading="true"/>
<properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>
</authentication>
<authorization map-groups-to-roles="false">
<properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>
</authorization>
</security-realm>
<security-realm name="ApplicationRealm">
<server-identities>
<ssl>
<keystore path="server.keystore" relative-to="jboss.server.config.dir" keystore-password="serverpassword" alias="server" key-password="serverpassword"/>
</ssl>
</server-identities>
<authentication>
<local default-user="$local" allowed-users="*" skip-group-loading="true"/>
<properties path="application-users.properties" relative-to="jboss.server.config.dir"/>
</authentication>
<authorization>
<properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>
</authorization>
</security-realm>
</security-realms>
<subsystem xmlns="urn:jboss:domain:security:1.2">
<security-domains>
<security-domain name="other" cache-type="default">
<authentication>
<login-module code="Remoting" flag="optional">
<module-option name="password-stacking" value="useFirstPass"/>
</login-module>
<login-module code="RealmDirect" …
Run Code Online (Sandbox Code Playgroud) 我在嵌入式设备上遇到了一个 mbedTLS 示例,在下载固件之前我看到了服务器证书验证(以 github.com 为例),但唯一编码的证书/密钥是 github 之一(CA 链,而不是 github 证书)本身)。
我的问题是:
我对答案有一个大致的了解,但我需要确定性。
问候,
我正在使用带有相互 tls 的 Golang gRPC。是否可以从 rpc 方法获取客户端的证书主题 DN?
// ...
func main() {
// ...
creds := credentials.NewTLS(&tls.Config{
ClientAuth: tls.RequireAndVerifyClientCert,
Certificates: []tls.Certificate{certificate},
ClientCAs: certPool,
MinVersion: tsl.VersionTLS12,
})
s := NewMyService()
gs := grpc.NewServer(grpc.Creds(creds))
RegisterGRPCZmqProxyServer(gs, s)
er := gs.Serve(lis)
// ...
}
// ...
func (s *myService) Foo(ctx context.Context, req *FooRequest) (*FooResonse, error) {
$dn := // What should be here?
// ...
}
Run Code Online (Sandbox Code Playgroud)
是否可以?
我使用 Netty 实现带有安全套接字的服务器。我的 sslHandler 代码是:
SslHandler sslHandler = SslContextBuilder
.forServer(certFile, keyFile)
.trustManager(trustFile)
.clientAuth(ClientAuth.REQUIRE)
.build()
.newHandler(channel.alloc());
Run Code Online (Sandbox Code Playgroud)
trustFile
是一个 File 对象,其中包含大约 700 条证书文本,例如:
-----开始证书----- MIIEHDCCAwSgAwiBAgIJAOR6+3G8C6f7MA0GCSqGSIb3DQEBCwUAMIGNMQswCQYD VQQGEwJVUzESMBAGA1UECAwJQ2FsaWZvbWlhMRwwGgYDVQQKDBNDaXNjbyBTeXN0 ................................ ............................ igHdyc519KbYSMfhuM9gXw35LPmFWStBGYikBcMZJ1WmWxb/eZOK1SMjVQ/L/JVg -----结束证书-----
当我连接服务器时
curl -k -v -E client.pem --key client.key.pem --cacert rootCA.pem https://10.140.28.33:31069
弹出异常:
11:00:18.636 [nioEventLoopGroup-3-2] WARN io.netty.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
io.netty.handler.codec.DecoderException: java.lang.RuntimeException: Field length overflow, the field …
Run Code Online (Sandbox Code Playgroud) 我的网站正在运行 TLS 1.2,经https://www.ssllabs.com/验证 。但是,我在 Stripe 中不断看到收费以 TLS 1.0 方式进行,我需要升级。
我致电 Hostmonster,他们还验证了我使用的是 TLS 1.2。
那么我错过了什么?为什么费用仍然通过 TLS 1.0 进行?
我正在使用 Stripe 和 PHP。
我有Ubuntu 16.04
。它有OpenSSL 1.0.2g
。我需要使用OpenSSL 1.1.0g
。请注意,OpenSSL 1.1.0g已安装在另一台计算机上Ubuntu 18
。但是我需要在其中运行python程序,Ubuntu 16.04
但需要特定的OpenSSL 1.1.0g
。我做了:
sudo apt-get upgrade
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
但是OpenSSL
在我的Ubuntu机器上没有更新。我该如何更新?
我使用Python socket, ssl
模块,以使端口443威尔蟒蛇TLS连接会自动识别OpenSSL 1.1.0g
,如果我更新了老OpenSSL 1.0.2g
于OpenSSL 1.1.0g
?
升级的原因OpenSSL
是我需要运行python程序ssl socket,但我需要使用该程序OpenSSL 1.1.0g
。
当我尝试:
sudo apt-get install openssl
Run Code Online (Sandbox Code Playgroud)
并通过以下方式检查OpenSSL版本:openssl version -a
我得到了旧版本OpenSSL 1.0.2g
请问如何OpenSSL 1.1.0g
在我的Ubuntu 14.06
机器上获得新版本?
从其主网站下载的全新 Python 3.7 64 位安装,可在 Windows 10 专业版上运行。以管理员权限使用 PowerShell。Pip 总是抛出 ReadTimeoutError。
命令:
python -m pip -vvv install --upgrade pip
返回以下内容:
配置变量 'Py_DEBUG' 未设置,Python ABI 标签可能不正确 配置变量 'WITH_PYMALLOC' 未设置,Python ABI 标签可能不正确 创建临时目录:C:\Users\vbfal\AppData\Local\Temp\pip-ephem-wheel -cache-sotpqqgg 创建临时目录:C:\Users\vbfal\AppData\Local\Temp\pip-install-qqmlc7qa 1 个用于搜索 pip 版本的位置:* https://pypi.org/simple/pip /获取页面https://pypi.org/simple/pip/查找“ https://pypi.org/simple/pip/" 在缓存中没有可用的缓存条目开始新的 HTTPS 连接 (1): pypi.org Incremented Retry for (url='/simple/pip/'): Retry(total=4, connect=None, read=None, redirect= None, status=None) 在连接被 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port =443): 读取超时。(读取超时 = 15)")': /simple/pip/ 开始新的 HTTPS 连接 (2): pypi.org Incremented Retry for (url='/simple/pip/'): Retry (total=3, …
我正在开发一个应用程序,其中密钥服务器(K)生成对称密钥并与服务器(A)和客户端(B)共享。A 和 B 通过 UDP 连接。我正在使用内存 BIO,并尝试使用密码“PSK-AES128-CBC-SHA”。
我有几个与此相关的问题:
SSL_CTX_set_cipher_list(context, "PSK-AES128-CBC-SHA");
出现错误SSL routines:ssl_cipher_list_to_bytes:no ciphers available
我尝试使用 TLSV1_2_server_method、TLSV1_2_server_method、DTLS_server_method、DTLS_client_method,但每种方法都因上述错误而失败。
是否有可用于 TLS-PSK 加密的示例代码?我在网上找不到任何好的教程或示例。
我在执行此操作时参考了这篇文章,但我使用的是内存 BIO https://bitbucket.org/tiebingzhang/tls-psk-server-client-example/src/783092f802383421cfa1088b0e7b804b39d3cf7c/psk_server.c?at=default&fileviewer=文件视图默认值
错误:SSL 握手中止:ssl=0x676a5680:SSL 库失败,通常是协议错误
根据此Android 文档,API 16+ 支持TLS 1.1和1.2 ,但在 API 20+ 之前默认不启用。我找到了一些解决方案(此处、此处、此处和此处),用于启用 OkHttp 的 TLS 1.1 和 1.2 支持。如何启用 Exoplayer 的 TLS 1.1/1.2 支持?我发现的关于 Exoplayer TLS 1.1/1.2 支持的唯一帖子来自此 github问题,该问题建议改为在此处提出问题。
“07-27 13:21:09.817 8925-9065/com.ftsgps.monarch E/ExoPlayerImplInternal:源错误。com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException:无法连接到https://liveStream/LIVE -0089000D05/manifest.mpd 在 com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:194) 在 com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:147) 在 com .google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:102) 在 com.google.android.exoplayer2.upstream.DataSourceInputStream.open(DataSourceInputStream.java:65) 在 com.google.android.exoplayer2.upstream .ParsingLoadable.load(ParsingLoadable.java:129) 在 com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:308) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) )在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 在 java.lang.Thread.run(Thread.java:841) 引起:javax.net.ssl.SSLHandshakeException:javax.net。 ssl.SSLProtocolException:SSL握手中止:ssl=0x722c3af8:SSL库失败,通常是协议错误错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败(外部/openssl/ssl/s23_clnt.c:744 0x689d8f10:0x00000 000) ”
这种情况仅发生在 API 21 …
试图以G套房发送电子邮件smtp-relay
使用Nodemailer
。
const transporter = nodemailer.createTransport({
host: "smtp-relay.gmail.com",
port: 587,
secure: true,
auth: {
user: "username@mydomain.com",
pass: "password"
}
});
const result = await transporter.sendMail({
from: `'"JOHN" <john@externaldomain.com>'`,
to: "hello@mydomain.com",
subject: "Hello",
text: "Hello world!",
});
Run Code Online (Sandbox Code Playgroud)
这就是 G Suite 所说的使用TLS
:Link1 Link2
这是 Nodemailer 所说的:链接
继续
基本上 G Suite 告诉我我应该为 TLS 使用端口 587,而 Nodemailer 说我不应该。
不知道它是否与端口有关,但这是我收到的错误:
注意:我正在尝试 port 587
。
{ [错误:13252:错误:1408F10B:SSL 例程:ssl3_get_record:错误的版本号:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:332:] 代码:'ESOCKET',命令:'连接'}
如果我更改为 port 465
,则会收到此错误:
'535-5.7.8 用户名和密码不被接受。在\n535 5.7.8 https://support.google.com/mail/?p=BadCredentials了解更多 信息,响应代码:535,命令:'AUTH …
tls1.2 ×10
ssl ×6
openssl ×3
android ×1
email ×1
embedded ×1
exoplayer ×1
go ×1
grpc ×1
https ×1
java ×1
mbedtls ×1
netty ×1
nodemailer ×1
php ×1
pip ×1
pyopenssl ×1
python-3.x ×1
tls-psk ×1
ubuntu-16.04 ×1
wildfly-10 ×1
windows-10 ×1