linux命令:CA证书制作及httpd服务器证书签核实例

本文涉及的产品
Digicert DV 证书 单域名,20个 3个月
简介:

实例:

   实现httpd服务器,CA证书服务器,客户端访问httpd网页站点证书有效登录,

证书的安装及发放。openssl证书搭配https服务器配置。


   准备工作:需要准备2台服务器;

          1、第一台服务器先安装好httpd服务,上一章提到了httpd服务器配置与安装。

            这里就不详细解释如何安装httpd和配置httpd服务器IP:10.109.134.249

          2、第二台服务器作为CA证书签核服务器,CA证书服务器IP地址:10.109.134.236      

1、先确认httpd是否安装过ssl模块(10.109.134.249服务器)   

[root@johntest ~]# httpd -M |grep ssl  #查询httpd服务器是否装有ssl模块

Loaded Modules:

.........

 proxy_ajp_module (shared)

 python_module (shared)

 ssl_module (shared)     #该服务器已经装了ssl服务模块

Syntax OK

如果没有安装必须先安装httpd服务器的ssl服务模块:

[root@johntest ~]# yum install mod_ssl  #安装ssl模块

Loaded plugins: rhnplugin, security

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

Package1:mod_ssl-2.2.3-31.el5.x86_64 already installed and latest version#表示已安装ssl模块

[root@johntest ~]# rpm -ql mod_ssl  #查看mod_ssl模块安装了那些文件

/etc/httpd/conf.d/ssl.conf

/usr/lib64/httpd/modules/mod_ssl.so

/var/cache/mod_ssl

/var/cache/mod_ssl/scache.dir

/var/cache/mod_ssl/scache.pag

/var/cache/mod_ssl/scache.sem


  2、登录第二台服务器做CA证书服务器(10.109.134.236服务器)并配置好: 

[root@xuelinux ~]# cd /etc/pki

[root@xuelinux pki]# cd CA

[root@xuelinux CA]# pwd

/etc/pki/CA

[root@xuelinux CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048) #生成私钥;umask077表示生产私钥权限为600,genrsa证书加密格式,-out保存路径及文件名 2048私钥长度

Generating RSA private key, 2048 bit long modulus

...............................................+++

.......+++

e is 65537 (0x10001)

[root@xuelinux CA]#vim /etc/pki/tls/openssl.cnf #编辑openssl配置文件,红色部分是更改的地方

[ req_distinguished_name ]

 countryName                     = Country Name (2 letter code)

 countryName_default              = CN  #国家

 countryName_min                 = 2

 countryName_max                 = 2


 stateOrProvinceName              = State or Province Name (full name)

 stateOrProvinceName_default         = Jiangsu  #省份


 localityName                   = Locality Name (eg, city)

 localityName_default            = Kunshan  #城市

 

 0.organizationName               = Organization Name (eg, company)

 0.organizationName_default        = XueLinux  #组织

 

 # we can do this but it is not needed normally :-)

 #1.organizationName              = Second Organization Name (eg, company)

 #1.organizationName_default       = World Wide Web Pty Ltd

 

 organizationalUnitName            = Organizational Unit Name (eg, section)

 organizationalUnitName_default     = Tech  #部门

[root@xuelinux CA]# vim /etc/pki/tls/openssl.cnf #修改CA证书路径为绝对路径

wKiom1h676eC0vHiAAHgYhvWdvg015.jpg

[root@xuelinux CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655  #跟据cakey.pem私钥生成自签证书cacert.pem,其他默认格式,-days是证书有效期(天)

wKiom1h67AKB0TOFAATM7FQMx7s077.jpg

[root@xuelinux CA]# mkdir certs crl newcerts  #创建3个证书相关的目录

[root@xuelinux CA]# touch index.txt   
[root@xuelinux CA]# echo 01 > serial  #下一个证书编号为01
[root@xuelinux CA]# ls  #确保/etc/pki/CA目录下有以下文件及目录
cacert.pem  certs  crl  index.txt  newcerts  private  serial


  3、重新登录到httpd服务器(10.109.134.249)端,进行相关私钥的设置:

[root@johntest ~]# cd /etc/httpd

[root@johntest httpd]# ls

conf  conf.d  logs  modules  run

[root@johntest httpd]# mkdir ssl  #建立ssl目录

[root@johntest httpd]# cd ssl/

[root@johntest ssl]# (umask 077; openssl genrsa 1024 > httpd.key) #生成私钥文件

Generating RSA private key, 1024 bit long modulus

.............................++++++

..............................................++++++

e is 65537 (0x10001)

[root@johntest ssl]# openssl req -new -key httpd.key -out httpd.csr #生成证书签核请求

wKioL1h7DrSz6NG7AAXxJL7ufJk298.jpg

[root@johntest ssl]# ls

httpd.csr  httpd.key

[root@johntest ssl]# scp httpd.csr 10.109.134.236:/tmp   #把生成的证书签核请求文件复制

                                       到CA证书服务器的/tmp目录下


root@10.109.134.236's password: 

httpd.csr              100% 3892     3.8KB/s   00:00 



 4、登录CA证书服务器端(10.109.134.236),对生成的证书签核请求进行签核:

[root@xuelinux ~]# cd /tmp

[root@xuelinux tmp]# ls

httpd.csr  lost+found

[root@xuelinux tmp]# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 3650  #签核证书申请,并生成证书文件httpd.crt,-days证书有效期,如提示以下错误,需修改配置文件

wKioL1h7GBjgiKICAAJdYR-D2jM107.jpg

[root@xuelinux tmp]#cd /etc/pki/CA

[root@xuelinux CA]# vim /etc/pki/tls/openssl.cnf #修改配置文件,具体如下图,

全部修改为optional:

wKioL1h7GPPSsvJmAAFuC_aAxX0109.jpg

[root@xuelinux CA]# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 3650

wKioL1h7GbuhOMsxAAVyESYL5h8540.jpg[root@xuelinux CA]# cat index.txt  #查看签核证书记录文件,已经生成一条证书签核记录

V270113063102Z01unknown/C=CN/ST=Jiangsu/O=XueLinux/OU=Tech/CN=hello.xuelinux.com/emailAddress=hello@xuelinux.com

[root@xuelinux CA]# cat serial   #查看证书版本号,下一个证书号为02

02

[root@xuelinux CA]# scp /tmp/httpd.crt 10.109.134.249:/etc/httpd/ssl/  #把签核好的证书文                    件httpd.crt从CA服务器拷贝到httpd服务器/etc/httpd/ssl/目录下

The authenticity of host '10.109.134.249 (10.109.134.249)' can't be established.

RSA key fingerprint is 5c:ec:b4:96:87:ae:6a:f8:66:09:d9:7a:f8:39:21:ae.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '10.109.134.249' (RSA) to the list of known hosts.

root@10.109.134.249's password: 

httpd.crt           100% 3892     3.8KB/s   00:00   #拷贝完成

[root@xuelinux CA]# ls newcerts/   #查看是否有生成证书的记录01.pem生成的第一个证书记录

01.pem

[root@xuelinux CA]# cd /tmp

[root@xuelinux tmp]# ls

httpd.crt  httpd.csr  lost+found

[root@xuelinux tmp]# rm -rf httpd.c*  #需把临时目录下的证书文件清除,以免被别人获取

[root@xuelinux tmp]# ls

lost+found


 5、登录到httpd服务器端(10.109.134.249),对ssl配置文件进行修改:  

[root@johntest ssl]# ls

httpd.crt  httpd.csr  httpd.key

[root@johntest ssl]# cd /etc/httpd/conf.d

[root@johntest conf.d]# ls

manual.conf  php.conf   python.conf  squid.conf  virtual.conf    welcome.conf

perl.conf    proxy_ajp.conf  README       ssl.conf    webalizer.conf

[root@johntest conf.d]# cp ssl.conf ssl.conf.back #修改配置文件前先复制一份以免错误可以恢复

[root@johntest conf.d]# ls

manual.conf  php.conf        python.conf  squid.conf  ssl.conf.back  webalizer.conf

perl.conf    proxy_ajp.conf  README       ssl.conf    virtual.conf   welcome.conf

[root@johntest conf.d]# vim /etc/httpd/conf.d/ssl.conf  #修改配置文件ssl.conf,

如下图位置需做修改:

wKioL1h7J6HT0PvkAAkWA__9naI259.jpg[root@johntest conf.d]# httpd -t  #检查httpd配置文件是否有语法错误

Syntax OK 

[root@johntest conf.d]# service httpd restart  #重启httpd服务

停止 httpd:                            [OK]

启动 httpd:                            [OK]

[root@johntest conf.d]# netstat -tlnp   #查看主机是否监听了443端口

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address   Foreign Address   State    PID/Program name   

tcp    0   0 127.0.0.1:2208       0.0.0.0:*    LISTEN      3575/hpiod       ........   

........

tcp   0    0     :::8080       :::*        LISTEN      9470/httpd          

tcp   0    0      :::80       :::*        LISTEN      9470/httpd          

tcp   0    0      :::22       :::*        LISTEN      3617/sshd           

tcp   0    0      :::443      :::*        LISTEN      9470/httpd 


至此httpd服务器端和CA证书服务器端配置完成。


以下为在客户端测试结果:

1、先修改客户端的C:\Windows\System32\drivers\etc\hosts文件,在最后面添加一行并保存退出:

10.109.134.249   hello.xuelinux.com

没有安装证书访问网页显示如下:

wKioL1h7MkeyH-F6AADt9avEhLk841.jpgwKioL1h7M3Di_YVfAALHXgoAnkA745.jpg

把CA证书服务器上生成的证书文件/etc/pki/CA/cacert.pem拷贝到客户端后,并改名后缀名为

cacert.crt,然后点击安装安装证书至受信任机构中即可: 

wKioL1h7O_Oy0HFWAAitNET13Mo587.jpg

wKioL1h7PKDiWGseAANUlkm6E6E347.jpg

wKiom1h7PKHhOnBVAAKbA4nAKa8558.jpg

安装完证书后,再打开https://hello.xuelinux.com,如下图:  

wKiom1h7PWnzuE4NAAFYgR9I-p0409.jpg

至此成功实现了通过CA证书服务器签核证书,并通过httpd服务器验证,客户端访问操作。










本文转自wang650108151CTO博客,原文链接:http://blog.51cto.com/woyaoxuelinux/1892091 ,如需转载请自行联系原作者






相关文章
|
27天前
|
存储 缓存 运维
阿里云服务器经济型e与通用算力型u1实例各自性能、适用场景区别及选择参考
在选择阿里云服务器实例规格时,经济型e实例和通用算力型u1实例因其高性价比和广泛适用性,备受个人开发者、中小企业的青睐。在同地域、相同配置的情况下,经济型e和通用算力型u1实例的价格相对于其他实例规格要低一些,很多个人和初创企业用户都会优先考虑选择这两个实例规格的云服务器,那么它们之间有什么区别?各自的性能、适用场景上有何区别?我们应该如何选择呢?本文将详细解析这两款实例的性能特点、适用场景、价格优势及购买建议,帮助用户更好地理解并选择合适的云服务器实例。
101 17
|
20天前
|
存储 弹性计算 数据挖掘
阿里云服务器ECS经济型e实例与通用算力u1区别、特性优势、使用场景及租赁费用对比
阿里云ECS云服务器的经济型e实例和通用算力型u1实例各有特点。e实例适合个人开发者和小微企业,适用于中小型网站、开发测试和轻量级应用,性价比高。u1实例则更适合中小企业,提供更高的性能和稳定性,适用于企业级应用、数据分析和中小型数据库。同等配置下,u1实例在计算、存储和网络性能上优于e实例。
180 86
|
1天前
|
运维
阿里云服务器批量执行命令(系统运维管理oos)
阿里云【系统运维管理oos】批量执行详情
21 4
|
13天前
|
存储 缓存 资源调度
阿里云服务器经济型、通用算力型、计算型、通用型、内存型实例区别与选择指南
在我们通过阿里云的活动选购云服务器的时候会发现,相同配置的云服务器往往有多个不同的实例可选,而且价格差别也比较大,这会是因为不同实例规格的由于采用的处理器不同,底层架构也有所不同(例如X86 计算架构与Arm 计算架构),因此不同实例的云服务器其性能与适用场景是有所不同。本文将详细解析阿里云的经济型、通用算力型、计算型、通用型和内存型实例的性能特点及适用场景,帮助用户根据自己的业务需求做出明智的选择。
|
14天前
|
开发框架 缓存 .NET
阿里云轻量应用服务器、经济型e、通用算力型u1实例怎么选?区别及选择参考
在阿里云目前的活动中,价格比较优惠的云服务器有轻量应用服务器2核2G3M带宽68元1年,经济型e实例2核2G3M带宽99元1年,通用算力型u1实例2核4G5M带宽199元1年,这几个云服务器是用户关注度最高的。有的新手用户由于是初次使用阿里云服务器,对于轻量应用服务器、经济型e、通用算力型u1实例的相关性能并不是很清楚,本文为大家做个简单的介绍和对比,以供参考。
|
19天前
|
存储 分布式计算 安全
阿里云服务器经济型、通用算力型、计算型、通用型各主要实例性能、适用场景对比
在阿里云目前的活动中,云服务器实例规格有几大类,分别是轻量应用服务器、经济型e实例、通用算力型u1实例,第七代计算型c7、通用型g7、内存型r7实例,第八代计算型c8i、通用型g8i、内存型r8i实例,倚天云服务器实例计算型c8y、通用型g8y、内存型r8y实例,不同类型的实例规格,性能和适用场景不同,本文将这些热门实例规格的性能和适用场景全部展示出来,以供大家做对比和选择参考,从而选择出适合自己需求的云服务器实例规格。
|
22天前
|
存储 缓存 网络协议
阿里云服务器实例选择:c7/g7/r7和c8i/g8i/r8i及c8y/g8y/r8y实例对比与选择参考
本文将重点介绍阿里云服务器七代云服务器实例(计算型c7、通用型g7、内存型r7)、八代云服务器实例(计算型c8i、通用型g8i、内存型r8i)以及倚天云服务器实例(计算型c8y、通用型g8y、内存型r8y)的主要性能、适用场景及选择参考,帮助用户根据自己的需求选择合适的云服务器实例。
|
20天前
|
存储 缓存 安全
阿里云服务器通用算力型u1实例怎么样?实例性能与测评结果参考
本文将通过性能评测、适用场景、特点介绍、实测数据分享以及最新活动价格等多个方面,全方位解析这款云服务器实例,以供用户了解和参考。
|
22天前
|
弹性计算 监控 测试技术
ecs e实例测评
阿里云 e实例性能稳定,适用于中小型 Web 应用。在 CPU 和内存性能测试中,e实例表现出色,尤其在资源密集型任务中具有较高的性价比。相比同配置的其他 ECS 规格,e实例在轻量化场景中更为均衡。价格方面,e实例低于传统 ECS 的 t5 实例,且在中国大陆市场具备一定优势。用户体验方面,控制台提供了清晰的实例创建流程和快速部署选项,但缺乏高级应用文档和性能优化指导。总体而言,e实例适合中小型企业和个人开发者使用。
46 5
|
22天前
|
弹性计算 数据挖掘 调度
阿里云服务器e实例与u1实例区别探析
阿里云服务器e实例与u1实例有何区别?阿里云ECS经济型e实例与通用算力型u1实例是两款颇受欢迎的产品,本文将对这两款实例进行详细的对比,帮助用户更好地了解它们的区别并做出选择。