天天看點

ZeroC Ice啟用SSL通訊的配置

該中間件在跨語言內建時比較友善,如下就是在JAVA C++之間互動時,啟用ssl通訊的設定

ICE提供申請證書的腳步,通過ICE腳本,可生成所需的證書。進入Ice-3.5.1/cpp/src/ca目錄。

1.1. 生成根證書,輸入證書相關資訊

python iceca init --no-password –overwrite

根證書在/root/.iceca/目錄下生成,root為目前登陸使用者

1.2. 申請用于ICE伺服器的證書:

python iceca request --no-password server server

1.3. 申請用于ICE用戶端的證書

python iceca request --no-password client client

1.4. 證書簽名

python iceca sign --in server_req.pem --out server_cert.pem

python iceca sign --in client_req.pem --out client_cert.pem

1.5. 導出證書

将ICE用戶端用到的證書導出為java可用的格式。根證書的證書檔案需要從/root/.iceca/ca/db下複制出來.

python iceca import --java  client_cert.pem client_key.pem  client_cert.jks

python iceca import --java  ca_cert.pem ca_key.pem  ca_cert.jks

ZeroC Ice啟用SSL通訊的配置

導出時需要兩個密碼,第一個是私鑰的密碼,由于在申請證書的時候不設定密碼,不輸入,直接回車,需要輸入第二個密碼##

2.1. 将生成的ca_cert.jks、ca_key.pem、client_cert.jks 、server_cert.pem檔案複制到/home/certs目錄下。

将編譯icessl生成的so檔案(libIceSSL.so、libIceSSL.so.3.5.1、libIceSSL.so.35)複制到/usr/lib下,執行 ldconfig指令。

2.2. ICE服務端ssl設定config.ice檔案,添加以下行:

Ice.Plugin.IceSSL=IceSSL:createIceSSL

IceSSL.DefaultDir=/home/certs

IceSSL.CertFile=server_cert.pem

IceSSL.KeyFile=server_key.pem

IceSSL.CertAuthFile=ca_cert.pem

服務端綁定的Endpoint,如下是普通的和ssl同時啟用

default -p 8881 -h localhost:ssl -p 8882

2.3. ICE用戶端啟用SSL

在/home/web下建立配置檔案config.ice,儲存以下内容:

Ice.Plugin.IceSSL=IceSSL.PluginFactory

IceSSL.Keystore=ca_cert.jks

IceSSL.Truststore=client_cert.jks

IceSSL.TruststorePassword=admin12345

用戶端程式連接配接的服務資訊和配置如下

"--Ice.Config=/home/web/config.ice"

"#:ssl -p 8882 -h ##"