步骤一

首先我们要知道CA的配置文件

openssl的配置文件:/etc/pki/tls/openssl.cnf

我们打开这个配置文件

这文件中很多跟CA相关的信息如图

解释:

我们可以搭建好几个CA,那么谁是默认的?图中① “=”号后面的信息就是默认的CA

图中②是默认CA的信息

依次表示:

dir行:存放CA所有信息的目录,比如编号,证书等等

certs行:证书存放的位置

crl_dir行:证书吊销列表,存放吊销证书的位置

database行(数据库):存放证书信息,如10个人申请了证书,就存放10行信息

unique_subject=no行:指的的是是否允许对一个主题申请多个证书(这里注销掉了,也就是说默认不允许)

new_certs_dir行(新证书的文件夹):存放新证书的位置

certificate行(ca的证书文件名):自己的证书

serial行(序列号):证书的编号存放位置,写的是下一个证书的编号,如现在颁发了10个人那么这里写的是11

crlnumber行(吊销证书的编号):吊销证书编号存放位置

crl行:存放证书吊销列表文件的路径

private_key(私钥)行:CA的私钥公钥证书位置

RANDFILE行:随机文件

图二:

上图信息说明:

policy 行:是策略,这个策略采用的是“=”号后面的policy_match

图中第二个方框是policy_mach策略的具体信息

(我们搭建CA要提供,必须信息,比如国家,省份,公司,部门等等,客户端申请证书也要提交这些信息,那有哪些要必须一致的呢?就要用match来定义)

上图有三项必须一致的

countryName:国家

stateOrProvinceName:省份

organizationName:公司名

为什么要必须一致呢?因为我们搭建的是私有CA,只有在公司内部使用

一、下面我们开始正式搭建CA

首先准备两台主机,客户端与CA服务器端

1、首先在CA端创建CA的私钥信息,进入CA文件夹cd /etc/pkiCA

安全生成私钥方法:

openssl genrsa -out private/cakey.pem -des3 2048
#这里私钥的位置与名字必须和上面的配置文件里面设置的一致,2048是加密位
#这是对私钥进行了des3加密,每次使用私钥都要输入口令,也可以用umask权限来设置

如图

私钥以建立完成

2、实现自签名的证书

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
#req是申请的意思
#-new是表示新建
#因为我们是自己给自己签名,所以加上一个 -x509,没有这个表示向别人申请证书
#-key私钥位置
#-out输出,我们证书存放位置在哪里?上面配置文件里面定义了,因为我现在在CA文件目录里,直接写,文件名就OK
#-days 3650是有效期,10年

如图:

这里我们前面设置了私钥密码,所有要输入口令,之后就是让你输入一些信息,就是上面的国家,省份,市区,公司,部门等等信息。

如图

可以查看CA信息文件

也可在win系统查看

3、让win系统信任此证书

控制面板--internet 选项--内容--证书--受信任的根证书颁发机构--导入

也可直接打开cacert.cer文件 单击 安装证书

到此根证书创建完毕,下面来创建客户端来向CA服务器端申请证书

二、客户端申请证书

假设有一个软件,这个软件是应用程序,给自己的软件使用证书,就要申请证书。

步骤和上面的大同小异

1、生成私钥,这回我们换另一种安全生成私钥的方式,首先我们要进入这个软件的文件夹,执行

(umask 066;openssl genrsa -out app.key 1024)
#()相当于子shell 当前umask默认值还是022没变
#app.key是生成的文件,入http要用就放在http专门的文件夹里面

2、利用私钥生成证书申请文件

openssl req -new  -key app.key -out app.csr

3、把申请的证书信息传到CA服务器

#这个/etc/...目录是可以换的

4、CA服务器给客户端颁发证书

给客户端颁发证书要有下面这两个文件夹

5、执行命令

ca -in app.csr -out app.cer -days 100

6、把证书传给客户端 放在必要的目录下,在win系统上查看下

OK结束

欢迎补充

为公司内部搭建CA的更多相关文章

  1. windows 公司内部搭建禅道(项目管控)

    禅道的搭建异常爽快,非常方便,一般情况下我们使用开源版就可以了.下面是搭建流程,这里主要记录一些前期的注意事项 使用一键安装版就可以,很快,禅道安装主机安装好所需的Apache容器和mysql数据库, ...

  2. 公司内部搭建git服务器

    前言 因为gitHub上的项目是公开的,不适合公司内部项目放在上面,而私人的需要收费,这绝非是我们愿意的.所以找了个跟gitHub很相似,但是又免费的gitLab.现在将搭建gitLab过程记录一下留 ...

  3. 搭建公司内部的NuGet Server

    随着公司业务慢慢的拓展,项目便会越来越来多,很多项目会依赖其他项目DLL,比如一些底层的技术框架DLL引用,还有各业务系统的也有可能会有引用的可能. 项目多,交叉引用多,如果要是有一个DLL更新,那就 ...

  4. 关于公司内部的Nuget服务

    简介 公司内部搭建的Nuget服务,私有安全,局域网,速度快. 使用方法 VS -> 工具 -> 库程序包管理器 -> 程序包管理器设置 -> 程序包源 -> 新增以下配 ...

  5. DNS域名解析之搭建公司内部域--技术流ken

    什么是DNS DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换 ...

  6. .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器

    使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言     Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...

  7. 公司内部Wiki及搭建wiki系统-confluence

    Wiki 是一个协同著作平台或称开放编辑系统.我们可以用Wiki来建设帮助系统,知识库系统.国内公共wiki最著名就是百度百科.那公司内部为什么要使用wiki呢? 2.内部wiki的作用 1.鼓励分享 ...

  8. 在公司内部网络如何搭建Python+selenium自动化测试环境

    在公司内部安装Python+selenium测试环境,由于不能连外网所以不能使用pip命令进行安装,经过多次尝试终于安装成功,现总结如下分享给大家,也希望跟大家一起学习和交流自动化网页测试时遇到的问题 ...

  9. linux 搭建CA服务器 http+ssl mail+ssl 扫描与抓包

    搭建CA服务器 CA服务是给服务器发放数字证书,被通信双方信任,独立的第三方机构 国内常见的CA机构 中国金融认证中心(CFCA) 中国电信安全认证中心(CTCA) 北京数字证书认证中心(BJCA) ...

随机推荐

  1. python 可迭代对象与迭代器之间的转换

    列表: >>> l = [1, 2, 3, 4] >>> l_iter = iter(l) >>> l_iter <list_iterato ...

  2. bzoj 5496: [2019省队联测]字符串问题【SAM+拓扑】

    有一个想法就是暴力建图,把每个A向有和他相连的B前缀的A,然后拓扑一下,这样的图是n^2的: 考虑优化建图,因为大部分数据结构都是处理后缀的,所以把串反过来,题目中要求的前缀B就变成了后缀B 建立SA ...

  3. bzoj 3160: 万径人踪灭【FFT+manacher】

    考虑正难则反,我们计算所有对称子序列个数,再减去连续的 这里减去连续的很简单,manacher即可 然后考虑总的,注意到关于一个中心对称的两点下标和相同(这样也能包含以空位为对称中心的方案),所以设f ...

  4. plsqldeveloper永久注册码

    注册码:Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number:601769 password:xs374ca

  5. 《对“XXX::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们》的问题的解决方法

    <对“XXX::Invoke”类型的已垃圾回收委托进行了回调.这可能会导致应用程序崩溃.损坏和数据丢失.向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们& ...

  6. Python基础知识(3)

    1:字符串类型转换 num = 100 num2 = " #num是整数类型的值,num2是字符串类型的值,如果把他们两个的类型转换下呢? int(num2) #int 整形成整数 str( ...

  7. bzoj 4456 [Zjoi2016]旅行者

    题面 https://www.lydsy.com/JudgeOnline/problem.php?id=4456 题解 分治 设当前work的区间为(x1,y1,x2,y2) 我们将长边分成两半 不妨 ...

  8. selenium处理的操作

  9. HDU 1221 Rectangle and Circle 考虑很多情况,good题

    http://acm.hdu.edu.cn/showproblem.php?pid=1221 114 92 31 95 13 96 3 这题只需要判断圆和矩形是否相交,然后在里面是不算相交的. 那么就 ...

  10. java.util.Properties类的介绍-配置文件的读写【-Z-】

    简介:java.util.Properties是对properties这类配置文件的映射.支持key-value类型和xml类型两种. #打头的是注释行,Properties会忽略注释.允许只有key ...