我使用Delphi XE2和Indy 10.5.8.0
目前,我需要更改与我们的服务器之一的连接,以便仅使用TLS 1.2,目前我们正在使用TLS 1.0
作为IdHTTP的处理程序,正在使用IdSSLIOHandlerSocketOpenSSL.
我尝试将方法更改为sslvTLSv1_2并且它不起作用,因为连接提供下一个错误:"与SSL连接时出错.错误:1409442E:SSL例程:SSL3_READ_BYTES:tlsv 1警报协议版本"
我使用默认密码列表,不确定我是否需要任何特定的密码(当前要求服务器提供商知道他们使用的密码)
这是Handler的配置:
我不习惯SSL连接,因为它使用默认设置,一切正常.
我试图检查WireShark,并且在两种情况下(当方法是sslvTLSv1_2或sslvTLSv1时)我得到指向tls版本1.0的相同错误.
方法sslvTLSv1:
方法sslvTLSv1_2:
如果我遗漏了某些东西,请指出正确的方向.
提前感谢您提供的所有帮助.
PS:刚收到服务器提供商的回复,他们使用AES_128_GCM作为他们的密码,是否在默认的密码列表中?
WireShark>客户端Hello包:
我TIdHTTPServer在Delphi XE2中使用它作为基本的HTML服务器,以从网络获取请求,处理请求并返回所需的响应。
问题是当某人打开类似的页面时localhost:5678/book?name=??????,我无法收到名称“ ??????” 正确地。
此时的过程很简单:
procedure TMain.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
Aux_S1 : String;
Aux_S2 : String;
begin
Aux_S1 := ARequestInfo.Params[0];
Aux_S2 := System.UTF8Decode(ARequestInfo.Params[0]);
end;
Run Code Online (Sandbox Code Playgroud)
Aux_S1 是 'name=Ð'#$009F'еÑ'#$0082'Ñ'#$0080'ов'
Aux_S2 是 'name=?????????'
有些字母显示正确,而其他字母则没有。
我在做什么错,还是应该如何处理这些请求?
我试图通过电子邮件直接发送HTML模板而没有页面的复制粘贴,我的意思是只是把HTML代码发送为HTML页面而不是原始文本,主要原因是通过Delphi发送这个HTML模板.
问题是我们只得到HTML中的文本,我的意思是只有这一部分:
<p>Hola chicos!</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
Run Code Online (Sandbox Code Playgroud)
我不能让它显示的是这些线:
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0" …Run Code Online (Sandbox Code Playgroud)