前言:

  OpenCA是OpenCA开源组织使用Perl对OpenSSL进行二次开发而成的一套完善的PKI免费软件,主要由四部分组成:CA、RA、PUB和NODE。简而言之,PUB是对外提供服务的接口,用户可以通过PUB界面提交自己的注册、查询请求等;RA主要负责处理经由PUB提交过来的用户请求,判决是否批准这些请求;CA则是根据RA批准的请求来签发证书;NODE负责RA和CA间的数据传输。

一、准备工作

  搭建平台:CentOS7(mini install)

  前期软件安装:gcc gcc-c++ openssl-devel perl perl-devel perl-DBI perl-DBD-MySQL perl-Net-SSLeay expat-devel

  安装包:openssl(1.0.2k) httpd(编译安装时,需要依赖apr、apr-util、pcre) mysql(使用的是mysql-cluster版) openca-tools openca-base

二、安装

  1、安装openssl(1.0.2k)

  ./config shared --prefix=/usr/local/openssl

  make && make install

  2、安装httpd

  (1)安装apr(1.5.2)

  ./configure --prefix=/usr/local/apr

  make && make install

  (2)安装apr-util(1.5.4)

  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config

  make && make install

  (3)安装pcre(8.4.2)  

  ./configure --prefix=/usr/local/pcre

  make && make install

  (4)安装httpd(2.4.34)

  ./configure --prefix=/usr/local/apache2 --enable-ssl --enable-cgid --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --with-ssl=/usr/local/openssl

  make && make install

  3、安装mysql

  这里采用的是mysql-cluster,可以离线安装,不过需要修改/etc/my.cnf,如下图:

  将文件解压到/usr/local/mysql,并cd /usr/lcoal/mysql

  ./bin/mysqld --initialize(记住给出的临时密码) --> support-files/mysql.server start(启动MySQL) --> ./bin/mysql -uroot -p(输入临时密码登录)

  登录MySQL后:SET password=PASSWORD('openca');-->CREATE DATABASE openca;-->GRANT all ON openca.* TO 'root'@"%" IDENTIFIED BY 'openca';-->FLUSH PRIVILEGES;-->exit

  4、安装openca-tools

  ./configure --prefix=/usr/local/openca-tools

  make && make install

  5、安装openca-base

  创建openca组:groupadd openca;添加openca用户:useradd -g openca openca

  ./configure --prefix=/usr/local/openca-base --with-openssl-prefix=/usr/local/openssl/ --with-db-type=mysql --with-db-host=localhost --with-db-port=3306 --with-httpd-fs-prefix=/usr/local/apache2 --with-htdocs-fs-prefix=/usr/local/apache2/htdocs/pki --with-httpd-user=daemon --with-httpd-group=daemon --with-openca-user=openca --with-openca-group=openca --with-openca-tools-prefix=/usr/local/openca-tools

  make 

  make install-offline(安装CA)

  make install-online(安装RA)

  cd /usr/local/openca-base/etc/openca && ./configure_etc.sh

  chown -R daemon:daemon /usr/local/openca-base/etc

  chown -R daemon:daemon /usr/local/openca-base/var

  修改目录下的config.xml,将db_user改为“root”

三、测试

  启动MySQL:/usr/local/mysql/support-files/mysql.server start

  启动httpd:/usr/local/apache2/bin/apachectl start

  启动openca:/usr/local/openca-base/etc/init.d/openca start

  浏览器中输入:http://IP:PROT/pki,如果出现下图(在安装openca-base时只执行了make install-offline),恭喜恭喜







OpenCA搭建的更多相关文章

  1. Linux 加密安全和私有CA的搭建方法

    常用安全技术 3A: 认证:身份确认 授权:权限分配 审计:监控做了什么 安全通信 加密算法和协议 对称加密: 非对称加密 单向加密:哈希(hash)加密 认证协议 对称加密: 加密和解密使用的是同一 ...

  2. Online Judge(OJ)搭建(第一版)

    搭建 OJ 需要的知识(重要性排序): Java SE(Basic Knowledge, String, FileWriter, JavaCompiler, URLClassLoader, Secur ...

  3. Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境

    一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...

  4. 总结:Mac前端开发环境的搭建(配置)

    新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...

  5. Angular企业级开发(5)-项目框架搭建

    1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

  6. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  7. 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题

    千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...

  8. 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...

  9. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

随机推荐

  1. js操作元素导致元素错位和大小改变

    使用js循环的方式批量控制元素的大小时结果往往不尽如人意. 我总结了一条规律 在一个循环体内不可以同时存在一下两种操作,否则容易导致元素错位或大小改变: 1.对元素的offsetWidth.offse ...

  2. BZOJ4059[Cerc2012]Non-boring sequences(扫描线/分治)

    这题正解应该是扫描线,就是发现DP的区间在两个维度都为连续段,于是可以直接扫描线.但不幸的是,扫描线常数过大,无法通过本题. 考虑分治.对于分治区间[l,r],可以记录pre和nxt表示其前/后一次出 ...

  3. 祘头君的字符(DFS)

    一.题目 有n名选手在玩游戏,他们每个人有一个字符,每个字符都有自己固定的若干个特征.特征的种类数为k.每个人的特征为特征总集的一个子集. 两个字符的相似度定义为:如果两个字符A和B同时拥有某个特征或 ...

  4. 判断1/N是否为无限小数

    给定一个正整数N,请判断1/N是否为无限小数,若是输出YES,若不是请输出NO. 思路: 只要被除数n可以转换成2的次幂或者2与5的组合即为有限小数,否则为无线小数 代码如下: #include &l ...

  5. 利用docker安装gitlab

    安装docker 安装 virtualbox 下载 dockertoolbox并安装 官网的服务器一直连不上, 幸亏还有这个 https://get.daocloud.io/toolbox/ 比 ht ...

  6. msgfmt - 翻译汉化

    说明 目前大部分自由软件实现国际化使用的是gettext. 国际化就是让程序可以使用多国语言来显示程序里的字符串. 程序里一般都有很多字符串,菜单名也好,错误信息也好,都是字符串.假设字符串为stri ...

  7. java基本类型和包装类型

          int 是基本类型,直接存数值 Integer是类,产生对象时用一个引用指向这个对象 Java把内存划分成两种:一种是栈内存,另一种是堆内存 在函数中定义的一些基本类型的变量和对象的引用变 ...

  8. Java之多线程方式二(实现Runnable接口)

    /** * 创建多线程的方式二:实现Runnable接口 * 1. 创建一个实现了Runnable接口的类 * 2. 实现类去实现Runnable中的抽象方法:run() * 3. 创建实现类的对象 ...

  9. C实现日志等级控制

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h&g ...

  10. vue中的路由传参及跨组件传参

    路由跳转   this.$router.push('/course'); this.$router.push({name: course}); this.$router.go(-1); this.$r ...