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 ,如需转载请自行联系原作者






相关文章
|
7天前
|
存储 人工智能 容灾
阿里云服务器2核8G、4核16G、8核32G配置热门实例性能对比与场景化选型指南
2核8G/4核16G/8核32G配置的阿里云服务器在阿里云活动中目前有经济型e、通用算力型u1、通用型g7、通用型g8y和通用型g9i五种实例可选,目前2核8G配置选择u1实例活动价格652.32元1年起,4核16G月付选择经济型e实例最低89元1个月,8核32G配置160元1个月起,本文将为大家解析经济型e、通用算力型u1、通用型g7及通用型g8y实例,帮助用户根据自身需求合理选择最适合的实例规格和配置。
|
27天前
|
存储 缓存 安全
阿里云服务器热门实例选择参考:e/u1/c7/c8y/c9i/g7/g8y/g9i/r7/r8y/r9i实例适用场景汇总
通过阿里云的活动购买云服务器时,除了轻量应用服务器之外,活动内的云服务器实例规格主要以e/u1/c7/c8y/c9i/g7/g8y/g9i/r7/r8y/r9i这几种为主。本文主要为介绍阿里云服务器的实例规格是什么,有什么用,并汇总了阿里云轻量应用服务器和这些热门云服务器实例规格的适用场景,以供大家了解和选择适合自己的需求的实例规格。
|
29天前
|
存储 弹性计算 缓存
企业级云服务器租用一年需要多少预算?199元2核4G5M带宽阿里云u1实例评测
阿里云企业用户专享,仅需199元/年即可租用ECS通用算力型u1实例(2核4G、5M带宽、80G云盘),适用于中小企业官网、电商展示、数据分析等场景。支持多地域部署,新老用户均可享受,性价比高,助力企业稳定运营。
176 7
|
30天前
|
存储 弹性计算 安全
阿里云轻量服务器通用型、CPU优化型、多公网IP型、国际型、容量型不同实例区别与选择参考
阿里云轻量应用服务器实例类型分为通用型、CPU优化型、多公网IP型、国际型、容量型,不同规格族的适用场景和特点不同,收费标准也不一样。本文为大家介绍轻量应用服务器通用型、多公网IP型、容量型有何区别?以及选择参考。
|
26天前
|
存储 机器学习/深度学习 缓存
阿里云服务器4核8G配置租用价格:不同实例收费标准、活动价格对比与选购参考
4核8G配置是深受初创企业用户喜欢的云服务器配置,2025年截止目前,按量收费标准最低降至0.45元/小时,包年包月租用平均优惠月价最低仅需159.84元/月,按年购买还可享受u1实例4核8G活动价955.58元/年起的价格。云服务器实例规格和配置不同,收费标准与活动价格也不同,下面是小编为大家整理汇总的阿里云服务器4核8G配置2025年最新收费标准与活动价格。
145 3
阿里云服务器4核8G配置租用价格:不同实例收费标准、活动价格对比与选购参考
|
13天前
|
存储 人工智能 弹性计算
阿里云gpu云服务器收费价格,热门实例简介和最新按量、1个月、1年收费标准参考
在阿里云所有gpu云服务器实例规格中,计算型gn5、gn6i、gn6v、gn7i和最新推出的gn8is、gn8v-tee等实例规格是其中比较热门的gpu云服务器实例。阿里云gpu云服务器最新租用价格参考,适合AI推理/训练的16核60G+1张A10 24G显存(gn7i-c16g1.4xlarge),按量优惠价1.9/小时起。本文为大家展示阿里云gpu云服务器中gn5、gn6i等热门实例规格的主要性能和适用场景以及最新按量和1个月、1年收费标准,以供参考。
|
29天前
|
人工智能 编解码 安全
阿里云服务器上新,第9代AMD企业级实例g9ae,提升企业AI业务创新与性能突破
近日,阿里云推出的服务器ECS第9代AMD企业级实例-g9ae实例已开启邀测阶段,g9ae实例基于CIPU 2.0架构,搭载AMD Turin处理器,为国内首创物理核设计的“性能旗舰型”算力产品,专为AI时代企业离线数据处理打造。本文为大家介绍g9ae实例的性能及适用场景,以供了解与参考。
|
1月前
|
存储 机器学习/深度学习 编解码
阿里云服务器计算型c7/c8a/c8i/c8y/c9i实例性能、适用场景及价格对比与选择参考
阿里云服务器计算型c7、计算型c8a、计算型c8i、计算型c8y和计算型c9i同属于计算型实例,是目前计算型实例规格中的热门实例规格,通常在阿里云的活动中,计算型实例也主要以这几个实例规格为主,本文为大家介绍c7/c8a/c8i/c8y/c9i实例各自的实例性能、适用场景及价格对比,以供选择参考。
|
29天前
|
存储 弹性计算 网络协议
阿里云服务器ECS通用算力型u2i实例怎么样?与u1有什么区别?
阿里云ECS通用算力型u2i实例基于全新CIPU架构,性能更稳定,网络带宽和存储IOPS更高,适合对性能和稳定性要求较高的中小型业务。相比u1实例,u2i在架构、网络、存储等方面均有明显提升,适用于动态业务需求。
|
1月前
|
存储 机器学习/深度学习 缓存
阿里云九代云服务器怎么样?计算型c9i、通用型g9i、内存型r9i实例介绍
阿里云第9代云服务器主要实例规格包括计算型c9i、通用型g9i、内存型r9i,本文将为大家介绍阿里云九代云服务器中的计算型c9i、通用型g9i、内存型r9i实例的主要性能特点,并分享最新的活动价格信息,以供参考。
194 1