`
walksing
  • 浏览: 216976 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux 下CA服务器安装 .

阅读更多
分类: 保密安全性 2010-01-04 22:01 1011人阅读 评论(1) 收藏 举报
转载来自:http://hi.baidu.com/mx87/blog/item/32ca90fc715ffcfffd037f08.html



本文在LINUX AS3.0+apache2.0.x,openssl0.97 上实验通过
首先在安装之前要明白一些基本概念
1、SSL所使用的证书可以自己生成,也可以通过一个商业性CA(如Verisign 或 Thawte)签署证书。
2、证书的概念:首先要有一个根证书,然后用根证书来签发服务器证书和客户证书,一般理解:服务器证书和客户证书是平级关系。在SSL必须安装根证书和服务器证书来认证。 因此:在此环境中,至少必须有三个证书:根证书,服务器证书,客户端证书。
在生成证书之前,一般会有一个私钥,同时用私钥生成证书请求,再利用证书服务器的根证来签发证书。

3、签发证书的问题:我最近找了很多关于openssl的资料,基本上只生成了根证书和私钥及服务器证书请求,并没有真正的实现签证。我这里参考了一些资料,用openssl自带的一个CA.sh来签证书,而不是用MOD_ssl里的sign.sh来签。用openssl语法来生成证书,有很多条件限定,如目录,key的位置等,比较麻烦,我实验了好几天,最后放弃了。有兴趣的可以参考一下openssl 手册。
步骤一:安装openssl和apache
1、到www.openssl.org下载openssl-0.9.7e.tar.gz(目前最新版)
2、卸载掉老的opensll库(如果卸载了出错,说找不到某些*.so.x的文件就不要卸载)
命令:
#rpm –e –-nodeps openssl
3、解压:
命令:
#tar xzvf openssl-0.9.7e.tar.gz
4、进入openssl目录,并安装,用--prefix指定openssl安装目录
命令:
#cd openssl-0.9.7e
#./config --prefix="/usr/local/openssl"
#make
#make test
#make install
5、安装apache (如果安装系统的时候按需配置安装了apache也可以,我是这种方法)
至www.apache.org/dist下载apache最新版httpd-2.0.52.tar.gz
解压后进入apache目录,根据需要安装需要的模块,我这里装了ssl,rewrite,动态模式安装
命令:
#tar zxvf httpd-2.0.52.tar.gz
#cd httpd-2.0.52
#./configure --prefix="PREFIX" --enable-ssl --enable-rewrite --enable-so --with-ssl="/usr/local/openssl"
#make
#make install

步骤二:签证
安装openssl后,在openssl下有一个CA.sh文件,就是利用此文件来签证,来签三张证书,然后利用这三张证书来布SSL服务器。
1、在/usr/local/apache/conf下,建立一个ssl.crt目录,将CA.sh文件copy至/usr/local/apache/conf/ssl.crt/目录
命令:
#cp /usr/local/openssl/ssl/misc/CA.sh /usr/local/apache/conf/ssl.crt/CA.sh
2、运行CA.sh -newca,他会找您要CA需要的一个CA自己的私有密钥密码文件。如果没有这个文件?按回车会自动创建,输入密码来保护这个密码文件。之后会要您的一个公司信息来做CA.crt文件。最后在当前目录下多了一个./demoCA这样的目录
../demoCA/private/cakey.pem就是CA的key文件
./demoCA/cacert.pem就是CA的crt文件
命令:
# ./CA.sh -newca

要求输入如下信息:

Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:zhejiang
Locality Name (eg, city) [Newbury]:hangzhou
Organization Name (eg, company) [My Company Ltd]:xiongwei
Organizational Unit Name (eg, section) []:xw
Common Name (eg, your name or your server's hostname) []:ipman.cn
Email Address []:foolkaka@hotmail.com
当OpenSSL提示你“CommonName”时,确保您输入了服务器的FQDN("Fully Qualified Domain Name" ,即,当您为一个以后用https://www.foo.dom/访问的网站生成一个CSR时,这里输入"www.foo.dom"。
这样就建好了一个CA服务器,有了一个根证书的私钥cakey.pem及一张根证书cacert.pem,现在就可以cacert.pem来给签证了

3、签署服务器证书
生成服务器私钥:
命令:
# openssl genrsa -des3 -out server.key 1024
生成服务器证书请求
命令:
# openssl req -new -key server.key -out server.csr
会要求输入信息

Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:zhejiang
Locality Name (eg, city) [Newbury]:hangzhou
Organization Name (eg, company) [My Company Ltd]:xiongwei
Organizational Unit Name (eg, section) []:xw
Common Name (eg, your name or your server's hostname) []:ipman.cn
Email Address []:foolkaka@hotmail.com
当OpenSSL提示你“CommonName”时,确保您输入了服务器的FQDN("Fully Qualified Domain Name" ,即,当您为一个以后用https://www.foo.dom/访问的网站生成一个CSR时,这里输入"www.foo.dom"。
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:yourpassd
An optional company name []:xw

最后把server.crt文件mv成newreq.pem,然后用CA.sh来签证
命令:
# mv server.csr newreq.pem
# ./CA.sh -sign
这样就生成了server的证书newcert.pem
把newcert.pem改名成server.crt
命令:
# mv newcert.pem server.crt

4、处理客户端:
生成客户私钥:
命令:
# openssl genrsa -des3 -out client.key 1024
请求:
命令:
# openssl req -new -key client.key -out client.csr
签证:
命令:
# openssl ca -in client.csr -out client.crt
把证书格式转换成pkcs12格式
命令:
# openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx

5、这时就有了三张证书和三个私钥,一个是demoCA下的根证书,ssl.crt下的服务器证书和客户证书。及demoCA/private下的根 key,ssl.crt下的服务器key和客户key,在conf下的ssl.conf下指定证书的位置和服务器key的位置并将所有的key和证书放到这里
命令:
#cp demoCA/cacert.pem cacert.pem
同时复制一份证书,更名为ca.crt
命令:
#cp cacert.pem ca.crt

步骤三、编辑ssl.conf
命令:
#cd /usr/local/apache/conf
#vi ssl.conf
指定服务器证书位置
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
指定服务器证书key位置
SSLCertificateKeyFile /usr/local/apache/conf/ssl.crt/server.key
证书目录
SSLCACertificatePath /usr/local/apache/conf/ssl.crt
根证书位置
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/cacert.pem
开启客户端SSL请求
SSLVerifyClient require
SSLVerifyDepth 1
启动ssl
命令:
/usr/local/apache/bin/apachectl startssl
会要求输入server.key的密码
启动,这样一个默认的SSL服务器及http服务器就启动了。

步骤四、安装和使用证书
把刚才生成的证书:根证书ca.crt和客户证书client.pfx下载到客户端,并安装。

ca.crt安装到信任的机构,client.pfx直接在windows安装或安装到个人证书位置,然后用IP访问HTTP和https服务器
分享到:
评论

相关推荐

    Linux各种应用服务器配置.pdf

    总结来说,配置Linux上的DNS服务器涉及安装和配置BIND,设置工作目录,创建和管理区域文件,以及添加不同类型的DNS记录。理解并掌握这些步骤对于管理和维护高效的网络服务至关重要。通过熟练运用这些知识,IT专业...

    探讨Linux下DNS服务器的安装.pdf

    这篇文献详细探讨了在Linux环境下安装DNS服务器的步骤和配置方法。 首先,DNS系统是由域名空间、域名服务器和解析器三部分构成的。域名空间是结构化的域名层次结构,域名服务器以区域(zone)为单位管理数据,并...

    在Linux上搭建BBS服务器.pdf

    由于Tomcat基于JRE运行,因此在Linux环境下搭建BBS服务器,首先要确保Java运行环境的配置。可以使用`rpm -ivh j2se*.rpm`命令安装Java环境。为了完成JRE环境的配置,还需设置相应的环境变量,如JAVA_HOME。在用户的....

    Linux离线安装svn.zip

    本文将详细讲解如何在没有网络连接的情况下,通过提供的“Linux离线安装svn.zip”压缩包来安装和配置svn。 首先,确保你的Linux系统已经安装了基本的开发工具,通常包括GCC编译器、make以及相关的库。这些工具可以...

    hyperledger-fabric-ca-linux-amd64-1.5.2.tar.gz

    7. **bin**:这个压缩包内的"bin"目录很可能包含了可执行文件,如`fabric-ca-server`和`fabric-ca-client`,它们分别用于启动和操作Fabric CA服务器和客户端。 8. **安装与使用**:在Linux环境中,解压此文件后,...

    最新版linux jdk-11.0.11_linux-x64_bin.tar.gz

    `tar.gz` 文件格式是Linux下常见的归档和压缩格式。`tar`命令用于将多个文件或目录打包成一个单一的归档文件,而`.gz`是gzip压缩算法的结果,用于进一步减小文件大小,便于存储和传输。 下载并安装这个JDK的步骤...

    cfssl离线linux服务器安装

    本文将详细介绍如何在Linux服务器上进行`cfssl`的离线安装。 ### 1. `cfssl`概述 `cfssl`主要包括三个主要组件: - `cfssl`: 提供了命令行接口,可以生成证书签名请求(CSR)、自签证书、以及处理证书签名请求和...

    linux下DNS服务器安装配置

    ### Linux 下 DNS 服务器安装配置知识点详解 #### 一、DNS 基础知识与工作原理 1. **DNS 的作用**: - DNS (Domain Name System) 是一种用于实现域名到 IP 地址映射的技术,使得用户可以通过易于记忆的域名访问...

    hyperledger-fabric-ca-linux-amd64-1.4.6.tar.gz

    7. **fabric-ca-server-version**:显示Fabric CA服务器的版本信息,这对于确认安装和升级过程中的兼容性至关重要。 8. **fabric-ca-client-version**:同样用于显示客户端工具的版本信息,确保与服务器版本匹配。 ...

    在Linux中架设CA证书中心.pdf

    在Windows中创建CA服务器非常常见,但是在Linux中,创建CA证书中心却不是很容易本文将指导读者如何在Linux系统中架设CA证书中心。 一、CA证书中心的概念 CA证书中心是数字证书的发行和管理机构,它负责颁发和管理...

    2022年优秀-LinuxDNS服务器培训教程.pptx

    安装和配置Linux域名服务器需要安装BIND9软件包,并配置缓存服务器、主域名服务器、辅域名服务器和域名转发器。 * 安装BIND9软件包 * 配置缓存服务器 * 配置主域名服务器 * 配置辅域名服务器 * 配置域名转发器 六...

    Linux燃亮CA World.pdf

    CA World Above 中,Linux 操作系统的应用得到了充分的展示,包括在服务器、数据中心、cloud computing 等领域的应用。 CA World 作为一个专业的IT行业平台,为 Linux 操作系统的发展提供了广阔的舞台。来自不同...

    在linux下配置邮件服务器分享.pdf

    在Linux环境下配置邮件服务器是一项复杂但重要的任务,它涉及到DNS解析、邮件服务器的设置以及相关协议的配置。本文将详细讲解这一过程。 首先,配置DNS是邮件服务器的基础,因为邮件传递需要准确地解析邮件服务器...

    linux下搭建CA认证服务器并认证服务.docx

    安装完成后,我们开始配置CA服务器。首先,我们需要修改 `/etc/pki/tls/certs/ca.crt` 文件,将其中的 `basicConstraints=CA:FALSE` 改为 `basicConstraints=CA:TRUE`。这表明我们的服务器是一个根CA,拥有签发证书...

    linux下搭建CA认证服务器并认证服务.doc

    配置CA服务器时,需要修改OpenSSL的配置文件。通常这个文件位于`/etc/pki/tls/openssl.cnf`。在这个例子中,需要将第172行的`basicConstraints=CA:FALSE`改为`basicConstraints=CA:TRUE`,表明该证书将作为根CA,...

    解决linux下访问https站点问题:证书无效.docx

    解决 Linux 下访问 HTTPS 站点问题:证书无效 在 Linux 系统中访问 HTTPS 站点时,...解决 Linux 下访问 HTTPS 站点问题:证书无效的问题需要了解 CA 证书的概念和 OpenSSL 工具的使用,以及 Linux 系统的证书库结构。

Global site tag (gtag.js) - Google Analytics