zeroc-icecertutils是什么?

zeroc-icecertutils全称zeroc Ice Certificate Utilities,其中包括iceca命令行程序和一个小型Python库,用于为Ice客户端或服务器创建证书。
该工具依赖于PyOpenSSL来创建证书。Java KeyStore文件是用keytool实用程序创建的。创建BouncyCastle KeyStore文件需要Java BouncyCastle提供支持。
其中,

  • PyOpenSSL是一个封装了openssl的python模块,使用它可以方便地进行一些加解密操作。
  • JAVA KeyStore是java的密钥库,用来进行通信加密用的,比如数字签名;还有用来保存密钥对的,比如公钥和私钥。一般多用作银行接口相关,保证通讯安全。
  • keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。
  • BouncyCastle是一个提供了很多哈希算法和加密算法的第三方库。它提供了Java标准库没有的一些算法,例如,RipeMD160哈希算法。

zeroc-icecertutils如何安装?

安装zeroc-icecertutils使用pip工具

pip install "zeroc-icecertutils >= 1.0.4"

iceca工具是什么?

iceca工具提供了一个小型证书颁发机构,允许创建与Ice客户机和服务器一起使用的证书。支持初始化CA数据库、创建证书和导出证书等命令。

通过以下命令可以查看相对应的命令帮助信息。

iceca init
ineca create
iceca list
iceca show
iceca export

python 模块

#导入模块
import IceCertUtils#
# 创建IceCertUtil factory
#
factory = IceCertUtils.CertificateFactory(cn = "My CA")#初始化证书数据库,保存为PEM、DER、JKS格式
factory.getCA().save("cacert.pem").save("cacert.der").save("cacert.jks")#
# 创建client证书
#
client = factory.create("client", cn = "Client")# 保存证书为 PKCS12 格式
client.save("client.p12")# 将客户端证书保存为JKS格式,并将CA证书包含在别名为“cacert”的keystore中。
client.save("client.jks", caalias="cacert")#
# 创建服务器证书,包括IP和DNS主题备选名称。
#
server = factory.create("server", cn = "Server", ip="127.0.0.1", dns="server.foo.com")# 保存证书为 PKCS12 格式
server.save("server.p12")# 保存证书为 JKS 格式
server.save("server.jks", caalias="cacert")# 将客户端证书和服务端证书保存为BKS格式。如果不支持BKS,则会抛出异常
#
try:client.save("client.bks", caalias="cacert")server.save("server.bks", caalias="cacert")
except Exception as ex:print("warning: couldn't generate BKS certificates:\n" + str(ex))factory.destroy()

shell脚本自动创建证书

#!/usr/bin/expectspawn bash -c "iceca init --overwrite"
expect {
"y/n)" {send "y\n";exp_continue}
"passphrase" {send "123456\n";exp_continue}
}spawn bash -c "iceca create --ip=192.168.0.12 server"
expect {
"passphrase" {send "123456\n";exp_continue}
}spawn bash -c "iceca export --password 123456 --alias srever /home/john/server.p12"
expect {
"passphrase" {send "123456\n";exp_continue}
}

shell脚本自动创建证书-进阶

#!/usr/bin/expectset passwd "123456"
set path "/home/john/certs"array set CA_IP {
"server" "192.168.0.100"
"client" "192.168.0.200"
}send_user "certificate database initial,waitting~\n"
spawn bash -c "iceca init --overwrite"
expect {
"y/n)" {send "y\n";exp_continue}
"passphrase" {send "$passwd\n";exp_continue}
}foreach key [array names CA_IP] {send_user " --- create ca name=$key, ip=$CA_IP($key) ~\n"spawn bash -c "iceca create --ip=$CA_IP($key) $key"expect {"passphrase" {send "$passwd\n";exp_continue}
}
send_user " --- export ca name=$key, ip=$CA_IP($key) ~\n"
spawn bash -c "iceca export --password $passwd --alias $key $path/$key.p12"
expect {
"passphrase" {send "$passwd\n";exp_continue}
}
}

拓展链接

zeroc-icecertutils GitHub
一文彻底搞懂加密、数字签名和数字证书,看不懂你打我!

初识RPC中间件zeroC ICE工具之iceca相关推荐

  1. Java构建工具, ZeroC ICE, word2vec

    https://antkillerfarm.github.io/ Java构建工具 构建工具的意义在于,提供一种独立于IDE的软件构建方式.而且通常来说,构建工具更适合特大项目的构建.比如,即使是以功 ...

  2. ZeroC Ice 暂记

    摘自: http://weibo.com/p/1001603869896789339575 原文地址: http://www.oschina.net/question/865233_242146 吴治 ...

  3. ZeroC Ice启用SSL通讯的配置

    Zeroc ICE ( Internet Communications Engine )中间件号称标准统一,开源,跨平台,跨语言,分布式,安全,服务透明,负载均衡,面向对象,性能优越,防火墙穿透,通讯 ...

  4. 跨平台的网络通信中间件:ICE和ACE

    二十世纪九十年代中期以来,业界一直在使用DCOM和CORBA这样的面向对象的中间件平台.在分布式的应用中,中间件平台托管了大部分网络事务,比如对数据进行编码与解码以进行传送,把逻辑对象地址映射到物理传 ...

  5. ZeroC ICE 源码编译

    本实验主要介绍如何在Ubuntu 14.04系统上编译安装ZeroC ICE,首先介绍一下ZeroC ICE. ZeroC ICE是ZeroC公司开发的一套RPC中间件平台,号称标准统一,开源,跨平台 ...

  6. 《ZeroC Ice 权威指南》笔记

    Ice介绍 Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件.Ice是RPC通讯领域里最稳定. ...

  7. ZeroC Ice权威指南-学习笔记1——hello world

    前言 ZeroC Ice是一款很好的RPC框架,性能极好.但是参考文档不足是其一大问题,这也影响了它的传播.<ZeroC Ice权威指南>是唯一的中文教材,但写的不尽如人意,作为入门教材, ...

  8. zeroc ice php,ZeroC ICE+PHP整合

    最近为了作分布式框架的技术选型,特意研究了多个分布式框架,恰好研究了Zeroc Ice 框架,特意记录以便后续查阅php 本文主要介绍win环境下PHP与ICE 环境的整合apache 首先咱们须要确 ...

  9. 通过 yar 初识RPC

    laruence/yar: Light, concurrent RPC framework for PHP & C 鸟哥的轻量级可支持并发的 rpc 框架,基于此初识 RPC 的工作原理,及其 ...

最新文章

  1. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(分组调色板填充、自定义调色板、灰度比例)实战(dot plot)
  2. 局域网组建与维护(1)
  3. VLC通信仿真中数字脉冲间隔调制(DPIM)实例
  4. 从涂鸦到发布 —— 理解API的设计过程
  5. easyGUI 用法介绍
  6. Vue项目实战06:nprogress页面加载进度条
  7. 【HTML5初探之form标签】解放表单验证、增加文件上传、集成拖放
  8. java对象头_我的并发编程(二):java对象头以及synchronized升级过程
  9. 关于thymeleaf静态资源找不到的问题
  10. java后端服务运行原理_web服务的后台工作原理
  11. [emuch.net]MatrixComputations(7-12)
  12. Web Client Software Factory系列(1):初识与预备知识
  13. 线程的简单理解,适用于初接触的小白,另类例子讲解,通俗易懂
  14. kb2999226此更新不适用你的计算机,Windows Server 2012 R2 安装补丁KB2999226提示此更新不适合用于计算机...
  15. 激光雷达:Ouster OS产品介绍及使用方法
  16. avr单片机c语言大小比较,AVR单片机C语言入门知识
  17. 马云开酒吧了,酒吧叫“平头哥”,真猛~
  18. 利用akshare读取50EFF期权2
  19. 金泰克/tigo S300 240G SM225K H27QFG8PEM5R 完整开盘教程
  20. 视频压缩后大小没变怎么办?视频压缩后大小没变是为什么?

热门文章

  1. 常见面试题整理:计算机网络篇,值得背诵收藏!
  2. shell 与 /etc/shells 功能
  3. uva 672 - Gangsters(dp)
  4. 介绍一下芯片的VIA pillar
  5. 制作ghost的linux系统安装方法,(转)linux系统GHOST备份方案
  6. Android 音量控制流程分析
  7. linux下qt不能加载控件,找不到或加载Qt平台插件“xcb”
  8. vue2.0,vue3.0 v-model数据双向绑定
  9. 关于GPS坐标转百度坐标与goolg坐标转百度坐标java代码实现方法
  10. WORD2003电子签名插件(支持手写、签章)