https证书互信解决方案—创建私有CA并申请证书

前言

https相较于http而言有很大的安全性,当我们一个服务开启https并与之通信时,往往需要证书的认证,如果是浏览器访问服务,只要在浏览器内设置信任证书即可,而如果是程序内访问服务(如java程序),则需要导入该服务的证书所信任的证书。

实际情况中,内部系统的互相通信使用https,往往不可能向公有CA申请证书(申请证书需要很高的费用),故我们需要创建一个私有CA来申请证书实现https通信。

名词介绍

CA和证书认证

详见我的一篇博文:https简单解读

实现步骤

环境介绍

  1. 64位 centos 7.X操作系统
  2. 装有openssl命令

构建私有CA

CA要给别人签发证书,首先自己得有一个作为根证书,我们得在一切工作之前修改好CA的配置文件、序列号、索引等等。

输入以下命令更改配置文件:

vi /etc/pki/tls/openssl.cnf

配置文件更改以下部分:

[ CA_default ]dir             = /etc/pki/CA           # Where everything is kept
certs           = $dir/certs            # Where the issued certs are kept
crl_dir         = $dir/crl              # Where the issued crl are kept
database        = $dir/index.txt        # database index file.
#unique_subject = no                    # Set to 'no' to allow creation of# several ctificates with same subject.
new_certs_dir   = $dir/newcerts         # default place for new certs.certificate     = $dir/cacert.pem       # The CA certificate
serial          = $dir/serial           # The current serial number
crlnumber       = $dir/crlnumber        # the current crl number# must be commented out to leave a V1 CRL
crl             = $dir/crl.pem          # The current CRL
private_key     = $dir/private/cakey.pem # The private key
RANDFILE        = $dir/private/.rand    # private random number file
...
default_days    = 3650                  # how long to certify for
...
# For the CA policy
[ policy_match ]
countryName             = match
stateOrProvinceName     = optional
localityName            = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

在/etc/pki/CA目录创建两个文件index.txt和serial:

cd /etc/pki/CA && touch index.txt serial && echo 01 > serial

仍在当前目录下生成一个CA私钥cakey.pem和自签证书cacert.pem:

openssl genrsa -out private/cakey.pem 2048
openssl req -new -x509 -key private/cakey.pem -out cacert.pem

生成公钥的时候会提示输入一些信息,例子如下:

Country Name (2 letter code) []:CN                                 #国家名
State or Province Name (full name) []:hangzhou                     #省份名
Locality Name (eg, city) []:hangzhou                               #地名
Organization Name (eg, company) []:company                         #公司名
Organizational Unit Name (eg, section) []:unit                     #部门名
Common Name (eg, your websites domain name) []:localhost           #服务域名
Email Address []:                                                  #电子邮件

后面一些信息可按回车略过

这里比较重要的是Comman Name填写的是服务的域名地址,即如果该证书用于某个服务则填该服务的域名地址(如用于百度服务器,则填写www.baidu.com)

本方案的CA证书不用于某个服务,故可填localhost

私有CA签署证书

为一个服务生成私钥server.key和一个证书请求文件server.csr:

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr

生成证书请求文件时,仍会提示输入一些信息,例子如下:

Country Name (2 letter code) []:CN                                 #国家名
State or Province Name (full name) []:hangzhou                     #省份名
Locality Name (eg, city) []:hangzhou                               #地名
Organization Name (eg, company) []:company                         #公司名
Organizational Unit Name (eg, section) []:unit                     #部门名
Common Name (eg, your websites domain name) []:XXX.XXX.XXX         #服务域名
Email Address []:                                                  #电子邮件

这里的Common Name就应该填你实际服务所用的域名了

下面将该证书请求文件server.csr由你构建的私有CA签署,生成一个server.crt证书:

openssl x509 -req -in server.csr -CA /etc/pki/CA/cacert.pem -CAkey /etc/pki/CA/private/cakey.pem -CAcreateserial -out server.crt

到此为止,server.crt证书可用于服务提供https访问,客户端若想访问该服务,导入CA根证书cacert.pem即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高亮显示QSS文件

转【作者:一去丶二三里 博客地址:http://blog.csdn.net/liang19890820】 简述 语法高亮是文本编辑器用来显示文本的,特别是源代码,根据不同的类别来用不同的颜色和字体显示。这个功能有助于编写结构化的语言,例如&…

智能识别技术对电子警察设备的影响

电子警察是目前交通管理部门用的最多的一种监控管理系统。这类系统与传统安防的监控设备有很大区别,原先的系统只能抓拍车辆图片,准确率又低所以被交通管理部门慢慢的淘汰了,同业兴创这款最新的设备系统,有它一个很优质的特点就是…

交通治安卡口监控系统解决方案

随着社会经济发展、城镇建设速度的加快,流动人口不断增加,城市中人口密度逐渐加大,给城市治安监管带来很大的压力。因此采用高清网络摄像监控系统以科技手段提高执法监督效率,成为有力推进“和谐社会”构建的最有力办法。 同业兴创…

细说shiro之三:在独立应用中使用shiro

官网&#xff1a;https://shiro.apache.org/ 1. 下载在非Web环境的独立应用中使用Shiro时&#xff0c;只需要shiro-core组件。在Maven项目中的依赖配置如下&#xff1a; <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</a…

2、C#基础 - Visual Studio 的版本选择和下载

有句话说&#xff1a;工欲善其事&#xff0c;必先利其器&#xff0c;我不推荐在学习一个语言时使用记事本练习&#xff0c;甚至说相当的排斥。当然了&#xff0c;你也可以选择你自己喜欢的方式。本系列推荐使用的IDE为vs2017 community版&#xff0c;银子不够的同志不用怕&…

红外摄像机的原理及选择

一、红外基本原理介绍 光是一种电磁波&#xff0c;它的波长区间从几个纳米&#xff08;1nm10-9m&#xff0c;十亿分之一米&#xff09;到 1 毫米&#xff08;mm&#xff09;左右。人眼可见的只是其中一部分&#xff0c;我们称其为可见光&#xff0c;可见光的波长范围为 380nm …

P3375 【模板】KMP字符串匹配

题目描述 如题&#xff0c;给出两个字符串s1和s2&#xff0c;其中s2为s1的子串&#xff0c;求出s2在s1中所有出现的位置。 为了减少骗分的情况&#xff0c;接下来还要输出子串的前缀数组next。如果你不知道这是什么意思也不要问&#xff0c;去百度搜[kmp算法]学习一下就知道了。…

php 原生文件下载

1.整个网页的html界面源码下载: xiazai.php <html> <head> <meta charset "utf-8"> <title></title> </head> <body> <form method"post" action"xiazai.php"> <input type"submit&quo…

asp 之 让实体中字段类型为DateTime的字段仅仅显示日期不显示时间

在我们平时的工作开发中。我们一般会遇到这种一个问题&#xff1a;某个实体的某个字段是DateTime类型的&#xff0c;但是我们在界面上仅仅想让它显示日期不显示时间&#xff01;一个订单实体&#xff1a;//订单类public class order{//订单IDpublic int id{get;set;}//物品IDpu…

Linux下配置LVM

1 LVM介绍LVM(Logical Volume Manager)逻辑卷管理&#xff0c;它是Linux环境下对磁盘分区进行管理的一种机制&#xff0c;LVM是建立在硬盘和分区之上的一个逻辑层&#xff0c;来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区&#xff0c;逻辑卷管理器的技术…

激光摄像机的原理及应用

近年来&#xff0c;在安防监控领域&#xff0c;以目前视频监控技术的发展情况&#xff0c;室内监控和白天正常环境下的监控已不是难题&#xff0c;但社会环境的发展日新月异&#xff0c;城市的发展、森林资源的不断流失、大型项目的建设、边防安全的守护等&#xff0c;这些环境…

Object.defineProperty 详解

最近想了解一下Vue是怎么实现数据双向绑定的&#xff0c;了解到是基于Object.definProperty,在此记录一下。 Object.defineProperty  顾名思义&#xff0c;就是给对象定义一个属性&#xff0c;总共有这么几种&#xff1a; value  属性的值writable  是否可改写&#xff0…

相机帧率和曝光时间的关系

文章转载自&#xff1a;http://blog.163.com/pluto_918/blog/static/203853902012111255634175/ 工业相机参数之帧率相关知识详解&#xff1a; 工业相机是机器视觉系统的重要组成部分之一&#xff0c;在机器视觉系统中有着非常重要的作用。工业相机已经被广泛应用于工业生产线…

SlickOne 敏捷开发框架介绍(二) -- 多用户/多租户/SAAS软件基础框架实现

前言&#xff1a;在应用于集团版客户或SAAS平台服务的业务系统中&#xff0c;流程管理系统需要支持多用户组织模型。其中包括角色数据、流程定义数据和流程实例数据的多用户标识绑定。本文旨在全面描述如何基于SlickOne敏捷开发框架实现上述基础服务功能&#xff0c;形成一个完…

工业相机行曝光与全局曝光

工业相机行曝光与全局曝光 逐行曝光&#xff1a; 图1 逐行曝光模式 逐行曝光sensor 实现如图1逐行曝光模式所示。与全局曝光不同&#xff0c;逐行曝光从第一行开始曝光&#xff0c;一个行周期之后第二行才开始曝光。依次类推&#xff0c;经过N-1 行后第N 行开始曝光。第一行曝光…

【Alpha阶段汇总】成果展示与体验总结

一、燃尽图 二、软件截图 三、代码与图片、音乐素材仓库 git仓库 四、问题与总结 1.git提交问题 之前创建的仓库地址是http://git.oschina.net/8265559926/groupnet14 但是无论怎么输入都说找不到仓库 经反复思考&#xff0c;感觉可能是因为地址不是纯字母的原因。就重新注册了…

JDBC批量操作性能提升

JDBC当使用INSERT INTO....VALUES()语句批量插入的时候&#xff0c;应该使用JDBC的PreparedStatement的批量操作方法&#xff0c;而不是採用一条一条运行的方法。比如&#xff08;来源&#xff1a;http://superjavason.iteye.com/blog/255423&#xff09;&#xff1a;如上图&am…

SVAC 2.0安全系统组成

SVAC2.0标准的一个很主要的特点就是视频安全和加密认证相比SVAC1.0更加规范&#xff0c;在视频安全方面更加重视。 通过信源层面的加密技术&#xff0c;实现端到端视频数据加密&#xff0c;构建更强大、更完整的视频安全体系。基于SVAC 2.0标准研究建立的安全系统&#xff08;…

【技术知识】SVAC 2.0安全技术浅析

2017-09-26 08:52 加密可以有效保护数据的机密性&#xff0c;防止非授权访问和非法监听。签名可以识别视音频的产生源以及所对应的视音频数据是否完整或被篡改。SVAC 2.0标准规定了加密和签名接口及数据格式&#xff0c;支持对数据的安全保护&#xff0c;以统一的语法格式支持…

别再管你的API叫微服务了

你有没有听过这句名言&#xff1a;“计算机科学领域只有两个难题&#xff0c;缓存失效和命名”&#xff1f;据说这句话是Phil Karlton在1996年或1997年左右说的。围绕这句格言确实出现了很多带有喜剧色彩的说法&#xff0c;它们也提到了其他的一些问题&#xff0c;但最近我对AP…