Wishlist 0 ¥0.00

hMailServer SSL 配置

hMailServer在網路安全部分主要有:自動IP禁止(Auto-ban)、SSL傳輸加密及用戶IP區段的存取認證,說明如下:

一、Auto-ban(IP自動禁止):

在[設定]->[進階]->自動IP禁止(Auto-ban),勾選即可,該選項預設是啟用的,常常會在初次登入多次失敗後被禁止登入,所以假如你的郵件系統只提供內部使用,建議還是把它關閉。另外,如果有架設網頁郵件來界接hMailServer,也建議關閉該選項,避免網頁郵件實常發生無法登入的狀況

201352145423978[1]

二、SSL郵件傳輸加密:

這段技術文件可參考官方網址http://www.hmailserver.com/documentation/latest/?page=reference_sslcertificates,實作步驟如下:

1.下載OpenSSL-Win32 http://slproweb.com/products/Win32OpenSSL.html,安裝起來,在命令字元模式,移至安裝路徑 OpenSSL-Win32\bin

2.產生私密金鑰 openssl genrsa -des3 -out hm_org.key 2048 ,必須輸入密碼。

3.產生憑證請求檔 openssl req -new -key hm_org.key -out hm.req,依對話內容輸入憑證內容資訊。

4.產生自簽憑證 openssl x509 -req -days 3650 -sha1 -extfile C:\OpenSSL-Win32\bin\openssl.cfg -extensions v3_ca -signkey hm_org.key -in hm.req -out hm.crt,如果你是要申請公開憑證,請將第3步驟產生的請求檔送交到憑證發行單位,申請公開憑證。

5.匯出原始金鑰以產生無密碼的金鑰檔 openssl rsa -in hm_org.key -out hm.key 。

6.將產生出來的 hm.crt 及 hm.key 複製到 hMailServer 安裝的機器中,註冊在SSL憑證中

201352151832947[1]

7.新增TCP/IP的SSL郵件通訊協定,SMTP、IMAP、POP3

201352152640213[1]

8.完成SSL郵件通訊協定的新增後,可查看[日誌],檢查系統是否有錯誤發生,以確定SSL的通訊協定能正常運作。

201352153032213[1]

9.一切無誤後郵件收發軟體就可以SSL的協定進行收發。

201352154941431[1]

三、用戶IP區段的存取認證:

在[設定]->[進階]->IP範圍,新增欲管制的IP區段。你可限制某段IP可對內或對外,也可設定該區段可使用的通訊協定,在[SMTP驗證請求]的地方建議除了外部到內部的郵件地址不勾選外,其他建議勾選,避免有內部用戶端中毒,導致SMTP封包到處投遞。

20135215354088[1]

當你勾選SMTP驗證請求時,在郵件收發軟體中也需要相關設定,如下圖(以Window Live Mail為例)

201352154435713[1]

 

hMailServer SSL 配置

 1.先安装 openssl , 调用如下命令,生成证书:

复制代码
openssl genrsa -des3 -out alics.key 2048

openssl req -new -key alics.key -out alics.req

openssl x509 -req -days 730 -sha1 -extfile C:\OpenSSL\bin\cnf\openssl.cnf -extensions v3_ca -signkey alics.key -in alics.req -out alics.crt

openssl rsa -in alics.key -out alics_rsa.key
复制代码

 

2. 导入证书:

 

3.配置外网策略

 

 

 

 

 

 

 

 

Windows下安装OpenSSL

     OpenSSL是一个功能丰富且开源的安全工具箱,它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。

      OpenSSL采用C语言作为开发语言,这使得它具有优秀的跨平台性能,OpenSSL支持:

  • Linux
  • UNIX
  • Windows
  • Mac等平台

      OpenSSL的github地址:https://github.com/openssl/openssl

      OpenSSL工具箱,主要包括以下三个组件:

  • openssl:多用途的命令行工具
  • libcrypto:加密算法库
  • libssl:加密模块应用库,实现了ssl及TLS协议

一、下载安装包

如果不想自己编译源码,那么可以直接去下载编译好的二进制文件进行安装,省事方便。

下载地址:http://slproweb.com/products/Win32OpenSSL.html

在这里插入图片描述

有4种安装包:

  • Win64 OpenSSL v1.1.1i Light,安装Win64 OpenSSL v1.1.1i最常用的软件包
  • Win64 OpenSSL v1.1.1i,安装Win64 OpenSSL v1.1.1i完整软件包
  • Win32 OpenSSL v1.1.1i Light,安装Win32 OpenSSL v1.1.1i最常用的软件包
  • Win32 OpenSSL v1.1.1i,安装Win32 OpenSSL v1.1.1i完整软件包

我们选择下载“Win64 OpenSSL v1.1.1i”。

二、安装

对下载的Win64OpenSSL-1_1_1i.exe,进行安装。

一般默认安装,但安装步骤中有一步,“Select Additional Tasks”,让选择OpenSSL的dll拷贝到什么地方,如下:

在这里插入图片描述

建议,不要拷贝到系统目录下,如果其他软件使用的OpenSSL版本与你安装这个版本不同,可能导致该软件无法使用。所以让这些dll待在OpenSSL安装目录下即可。

最后一步,是否捐款,如下:

在这里插入图片描述

看个人情况,全取消就是不捐。

安装完毕。

安装目录下内容:

在这里插入图片描述

三、验证安装是否正确

直接在cmd中,输入命令,查看OpenSSL版本

openssl version

结果,并不是我们安装的1.1.1i版

在这里插入图片描述

原因: 如果电脑上已经安装过其他软件,比如Git、VMware、Strawberry等,那么他们都自带了openssl,如下:

在这里插入图片描述

所以,当你在cmd中使用openssl命令时,可能会调用到其他版本的openssl。

解决办法: 将openssl 1.1.1i版本命令行工具路径添加到,系统变量Path第一条,以保证它首先被找到。

在这里插入图片描述

再次验证,查看OpenSSL版本正确。

在这里插入图片描述

 


Error:SSL certificate problem: unable to get local issuer certificate的问题解决

Error:SSL certificate problem: unable to get local issuer certificate的问题解决

这个错误是由于无法获取到本地证书颁发机构(issuer)的证书所引起的。在建立加密连接时,服务器会发送一个证书给客户端进行验证。客户端会检查证书的有效性,包括是否由受信任的证书颁发机构签发,以确保连接的安全性。

当出现"SSL certificate problem: unable to get local issuer certificate"错误时,表示客户端无法获取到本地信任的证书颁发机构的证书。这可能是由于以下原因导致的:

  1. 本地服务器没有安装正确的证书链。客户端无法确认服务器证书中的证书颁发机构是否可信。
  2. 操作系统或浏览器缺少根证书。根证书用于验证颁发服务器证书的证书颁发机构的信任链。

解决这个问题的方法包括:

  1. 确保服务器正确配置了证书链。检查服务器证书是否与正确的证书链一起安装。
  2. 更新操作系统或浏览器的根证书。在一些情况下,根证书可能会过期或被撤销,因此需要更新。
  3. 可以尝试手动信任服务器证书。但这并不是一个推荐的安全做法,除非你确信服务器证书是可信的。

这段代码中使用了cURL库来发送HTTP请求并获得响应。根据您的问题,"Error: SSL certificate problem: unable to get local issuer certificate"错误是由于cURL无法获取到本地信任的证书颁发机构的证书所引起的。

您可以尝试以下方法来解决这个问题:

  1. 忽略证书验证错误:这不是一个推荐的安全做法,但在某些情况下可以解决问题。在curl_setopt中添加以下选项,以跳过对证书的验证:

    
     
    1. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    请注意,这会使得您的请求在不验证服务器证书的情况下继续进行。这可能会导致安全风险,请确保您的请求是发往可信任的服务器。

  2. 更新根证书:检查您的操作系统或服务器是否缺少最新的根证书。您可以尝试更新操作系统或服务器上的根证书,以确保能够正确验证服务器证书。具体更新过程请参考您使用的操作系统或服务器的文档。
  3. 设置正确的证书路径:如果服务器上有正确的证书链,您可以在curl_setopt中设置正确的证书路径,以便cURL可以找到并验证服务器端的证书。示例代码如下:

    
     
    1. curl_setopt($ch, CURLOPT_CAINFO, '/path/to/certificate.crt');

    /path/to/certificate.crt替换为实际的证书路径。请确保路径和文件名与实际配置一致。

请注意,您应该在使用这些方法之前仔细考虑安全性和可靠性。如果您不确定如何正确处理证书问题,建议您联系服务器管理员或API提供商以获取更详细的帮助和指导。

About Us

Since 1996, our company has been focusing on domain name registration, web hosting, server hosting, website construction, e-commerce and other Internet services, and constantly practicing the concept of "providing enterprise-level solutions and providing personalized service support". As a Dell Authorized Solution Provider, we also provide hardware product solutions associated with the company's services.
 

Contact Us

Address: No. 2, Jingwu Road, Zhengzhou City, Henan Province

Phone: 0086-371-63520088 

QQ:76257322

Website: 800188.com

E-mail: This email address is being protected from spambots. You need JavaScript enabled to view it.