如何在StandAlone的IntraWeb或非IntraWeb的应用程序中启用基于Indy OpenSSL自签名的HTTPS
一、说白了,让你用基于Open SSL的Indy SSL库:
https://www.atozed.com/intraweb/download/ssl/
https://opendec.wordpress.com/
https://www.openssl.org/source/
二、证书格式转换工具:
Indy使用OpenSSL,其使用的证书格式不同于大多数SSL提供程序默认提供的证书格式。要转换它们,可以使用以下方法:
SSL Buddy –一个免费的UI实用程序,可以执行转换:
https://sslbuddy.software.informer.com/
手动转换–说明如何使用OpenSSL命令行工具进行SSL格式.cer和.pem的转换:
https://jingyan.baidu.com/article/9989c746d1681bf648ecfebe.html
三、自签名的Https方法及步骤:
1)设置ServerController.SSLOptions.Port = 443(您也可以使用任何其他端口,但是443是标准HTTPS端口)
2)生成证书。在开发过程中,您可以使用自签名证书。
在此处免费获取一个:https://zerossl.com
3)如果您从ZeroSSL.com获得了自签名证书,则将文件重命名为:crt.txt-> cert.pem key.txt-> key.pem
4 )下载“让我们加密根证书”。您可以在这里找到它:https://letsencrypt.org/certificates/
单击链接“ ISRG Root X1(自签名)”并保存。
5)将在(4)中获得的根证书重命名为root.pem。
6)将所有3个PEM文件(从上面的3-5)保存到IW EXE所在的文件夹中(*不是*在wwwroot文件夹中!)
7)从此处下载OpenSSL:https://indy.fulgan.com/SSL/
选择与您的服务器兼容的最新版本。请记住,32位应用程序需要32位DLL,而64位应用程序则需要64位DLL。
因此,Indy Fulgan DLL具有Win32和Win64后缀。
8)解压缩OpenSSL存档并将libeay32.dll和ssleay32.dll复制到IW EXE所在的文件夹中。
9)构建并运行您的应用程序。请注意,所有浏览器都会警告您您的自签名证书无效。
这是正常现象,是预期的。自签名证书的工作方式与普通证书一样,但是它们不受浏览器的信任。
您需要添加此证书作为例外,以便浏览器将其作为普通证书接受。
注意:
其他相关的属性:
a)ServerController.SSLOptions.NonSSLRequest->可能的值为:
-nsAccept:将接受使用HTTP(非安全)的请求。HTTPS请求也将起作用。
-nsBlock:使用HTTP(非安全)的请求将被阻止,HTTPS(安全)请求将起作用
-nsRedirect:使用HTTP的请求将被重定向到HTTPS请求。除协议外,将使用相同的URL,
有关设置此属性的示例代码,请参见ServerController.OnConfig事件。
b)TIWForm.ConnectionMode->可能的值为:
-cmAny:此表单将同时接受HTTP和HTTPS请求
-cmSecure:此表单将仅接受HTTPS请求
-cmNonSecure:此表单将仅接受HTTP(非安全)请求
有关设置此属性的示例代码,请参见表单的OnCreate事件。
本博客关联知识
《关于为客户端自签SSL证书的生成、颁发、鉴权与JWT + Token》
https://blog.csdn.net/pulledup/article/details/108034168
https://blog.csdn.net/pulledup/article/details/105408763
https://blog.csdn.net/pulledup/article/details/107026471
《ssl证书绑定windows服务器端口及SSL配置命令详解》
https://blog.csdn.net/pulledup/article/details/106056206
《H5 +JS +Bootstrap +IntraWeb +Delphi 10.4.1编程系列》
https://blog.csdn.net/pulledup/article/details/109141432
《delphi WebBroker服务器做后端,前端jtable+Html5+javaScript,Web开发利器》
https://blog.csdn.net/pulledup/article/details/104720906
《delphi XE使用JavaScript数据类型及数据类型转换》
https://blog.csdn.net/pulledup/article/details/107120755