申请证书和自建CA

一、理论知识

什么是CA?

CA是Certificate Authority的缩写,通常翻译成认证权威或者认证中心,主要用途是为用户发放数字证书。这个数字证书包含了用户身份的部分信息及用户所持有的公钥,同时利用CA本身的私钥为数字证书加上数字签名,其他用户只要能验证证书是真实的,并且信任颁发证书的认证中心,就可以确认用户身份,完成认证工作。
¤CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户名称与证书中列出的公开密钥相对应。CA中心的数字签名使得攻击者不能伪造和篡改数字证书。
为什么要使用CA?

¤为了使PKI的业务能够广泛应用,一个基本而关键的问题是公钥的分发与管理。由此引发出了某一公钥究竟属于谁的问题,它必须是由一个公众都信赖的权威机构进行认证,否则整个业务体系都将出现致命的安全漏洞。目前国际上通用的解决办法就是建立证书签证机关(Certificate Authority,即CA),由CA对公钥进行统一的管理并将公钥以公钥证书的形式对外分发。
CA的功能?

¤参考TongCA的功能
1、生成、撤销、更新证书。
2、发行证书和黑名单到目录服务器。
3、维护证书和黑名单数据库。
4、生成和维护自己的密钥:为了安全起见,CA目前的密钥(?)是CA自己生成的,并加密保存到具有超级用户权限的目录中。
5、维护审计日志。
6、增加、删除本级RA:由CA操作员来完成。
7、保证CA、RA和目录服务器三者数据内容的一致性。

概括地说,认证中心(CA)的功能有:证书发放、证书更新、证书撤销和证书验证。CA的核心功能就是发放和管理数字证书,具体描述如下:

(1)接收验证最终用户数字证书的申请。

(2)确定是否接受最终用户数字证书的申请-证书的审批。

(3)向申请者颁发、拒绝颁发数字证书-证书的发放。

(4)接收、处理最终用户的数字证书更新请求-证书的更新。

(5)接收最终用户数字证书的查询、撤销。

(6)产生和发布证书废止列表(CRL)。

(7)数字证书的归档。

(8)密钥归档。

(9)历史数据归档。

认证中心为了实现其功能,主要由以下三部分组成:

注册服务器:通过 Web Server 建立的站点,可为客户提供每日24小时的服务。因此客户可在自己方便的时候在网上提出证书申请和填写相应的证书申请表,免去了排队等候等烦恼。

证书申请受理和审核机构:负责证书的申请和审核。它的主要功能是接受客户证书申请并进行审核。

认证中心服务器:是数字证书生成、发放的运行实体,同时提供发放证书的管理、证书废止列表(CRL)的生成和处理等服务。
目前CA认证系统都由哪几部分组成?各部分都具有什么功能?

目前CA认证系统主要由以下三部分组成:在客户端面向证书用户的数字证书申请、查询和下载系统;在RA端由RA管理员对证书申请进行审批的证书授权系统;在CA控制台,签发用户证书的证书签发系统。

二、申请CA证书

1.生成一个私钥;

[[email protected] ~]# clear
[[email protected] ~]# (umask 077;openssl genrsa -out ./key.pri 2048)
Generating RSA private key, 2048 bit long modulus
...................+++
.........................................................+++
e is 65537 (0x10001)

2.制作一个证书签署请求;

[[email protected] ~]# openssl req -new -key ./key.pri -out ./myreq.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Guangzhou
Locality Name (eg, city) [Default City]:Shenzhen
Organization Name (eg, company) [Default Company Ltd]:www.magine356wj.com
Organizational Unit Name (eg, section) []:section
Email Address []:[email protected]

Please enter the following ‘extra‘ attributes
to be sent with your certificate request
A challenge password []:redhat
An optional company name []:redhat

注:Organization Name (eg, company) [Default Company Ltd]:如果证书是对http使用的,这里就要填FQDN

3.由CA签署证书

这一步提交书面申请,在这里略过

自建CA:

[[email protected] ~]# cd /etc/pki/CA/
[[email protected] CA]# (umask 077;openssl gensa -out private/cakey.pem 2048)
[[email protected] CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
......+++
..................+++
e is 65537 (0x10001)
[[email protected] CA]# openssl req -new -x509 -key private/cakey.pem -out c
certs/ crl/
[[email protected] CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Guangzhou
Locality Name (eg, city) [Default City]:Shenzhen
Organization Name (eg, company) [Default Company Ltd]:magine356wj.CA
Organizational Unit Name (eg, section) []:section
Common Name (eg, your name or your server‘s hostname) []:CA
Email Address []:[email protected]
[[email protected] CA]# ls -lh
total 20K
-rw-r--r--. 1 root root 1.5K Jul 13 12:40 cacert.pem
drwxr-xr-x. 2 root root 4.0K Feb 21  2013 certs
drwxr-xr-x. 2 root root 4.0K Feb 21  2013 crl
drwxr-xr-x. 2 root root 4.0K Feb 21  2013 newcerts
drwx------. 2 root root 4.0K Jul 13 12:36 private
[[email protected] CA]# touch serial index.txt
[[email protected] CA]# echo 01 >serial
[[email protected] CA]# vim serial
[[email protected] CA]# openssl ca -in myreq.csr -out mycert.crt -days 365
Using configuration from /etc/pki/tls/openssl.cnf
myreq.csr: No such file or directory
140178715932488:error:02001002:system library:fopen:No such file or directory:bss_file.c:355:fopen(‘myreq.csr‘,‘r‘)
140178715932488:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:357:
[[email protected] CA]# cat serial
01

注:

签署证书:

#openssl ca in /path/to/certreq.csr –out /path/to/certifile.crt –days 365

令,/etc/pki/openssl.conf中可以修改默认配置

专用客户端测试工具:

#openssl s_client –connect HOST:PORT –CAfile /path/to/cacertfile | –CApath /path/to/cacertfile-dir/ –ssl2|-ssl3|-tls

小结:

openssl

加密,解密:enc

信息摘要:dgst

生成私钥,提取公钥:genrsa

制作证书签署请求,自建CA:req

签署证书:ca

申请证书和自建CA

时间: 2024-12-21 16:14:28

申请证书和自建CA的相关文章

Windows Azure+Windows+Linux多环境下为Tomcat服务申请证书及分配证书

我们上一篇介绍了Windows Azure+Windows+Linux多环境下Tomcat服务的安装及配置,今天呢,主要介绍在Windows Azure+Windows+Linux多环境下为Tomcat服务申请证书及分配,一般我们都知道所谓的Web服务的证书配置就是启用SSL(加密)功能,主要提高数据传输的安全性.如果需要在互联网上访问的web服务,生成一个reg文件,然后发给第三方证书提供方来申请证书.而我们接下来的演示是通过内部证书颁发机构来实现证书申请的.需要给内部部署一台CA服务器,CA

自建CA以及证书申请

一.自建CA 1.CA生成密钥对: 2.生成自签证书: 二.其他主机向CA发起证书申请 1.生成密钥对 2.生成证书签署请求: 3.将证书签署请求发往CA: 三 .CA签署证书,并传回给请求者 1.CA签署成熟成功: 2.将签署成功的证书传回请求者:

openssl req(生成证书请求和自建CA)

伪命令req大致有3个功能:生成证书请求文件.验证证书请求文件和创建根CA.由于openssl req命令选项较多,所以先各举几个例子,再集中给出openssl req的选项说明.若已熟悉openssl req和证书请求相关知识,可直接跳至后文查看openssl req选项整理,若不熟悉,建议从前向后一步一步阅读. 首先说明下生成证书请求需要什么:申请者需要将自己的信息及其公钥放入证书请求中.但在实际操作过程中,所需要提供的是私钥而非公钥,因为它会自动从私钥中提取公钥.另外,还需要将提供的数据进

自建CA证书搭建https服务器

1.理论知识 https简介 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL. 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息.HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接

(11) openssl req(生成证书请求和自建CA)

伪命令req大致有3个功能:生成证书请求文件.验证证书请求文件和创建根CA. 由于openssl req命令选项较多,所以先各举几个例子,再集中给出openssl req的选项说明.若已熟悉openssl req和证书请求相关知识,可直接跳至后文,若不熟悉,建议从前向后一步一步阅读. 首先说明下生成证书请求需要什么:申请者需要将自己的信息及其公钥放入证书请求中.但在实际操作过程中,所需要提供的是私钥而非公钥,因为它会自动从私钥中提取公钥.另外,还需要将提供的数据进行数字签名(使用单向加密),保证

使用OpenSSL 自建CA 以及颁发证书

OpenSSL是套开放源代码的软件库包,实现了SSL与TLS协议.其主要库是以C语言所写成,实现了基本的加密功能. OpenSSL可以运行在绝大多数类Unix操作系统上(包括Solaris,Linux,Mac OS X与各种版本的开放源代码BSD操作系统),OpenVMS与 Microsoft Windows.它也提供了一个移植版本,可以在IBM i(OS/400)上运作. 此软件是以Eric Young以及Tim Hudson两人所写的SSLeay为基础所发展的,SSLeay随着两人前往RSA

Openssl 创建CA和申请证书

Openssl 创建CA和申请证书 =============================================================================== 概述: 本章是上篇加密解密技术的续,主要介绍Openssl创建CA.申请证书.办法证书的整个操作,具体内容如下: 创建私有CA: 给节点颁发证书: 吊销证书  详情查看上篇加密解密技术:http://1992tao.blog.51cto.com/11606804/1856438 ============

半自动化创建CA和申请证书

1 概述 本文之所以称之为半自动化,是因为证书的申请并非日常工作,只是一段时间才需要申请,同时,在创建证书和办法证书的时候,有些参数需要根据用户的需求自己调整,如证书的有效时间,还有,是否给私钥加密等等,因为叫脚本设置为半自动化,手动输入一些参数,到达用户的需求.当然如果环境是固定,参数也是固定,有效时间固定,该脚本配合crontab也可以实现自动化申请和颁发等操作 CA中心又称CA机构,即证书授权中心(Certificate Authority ),或称证书授权机构.本文将介绍通过openss

自建CA及签署证书

1.自建CA # cd /etc/pki/CA/ # (umask 077; openssl genrsa -out private/cakey.pem 2048) # openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3656 Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:Yunnan Locality N