2020-03-30 05:20:02 登录注册 RSS

当前位置: 公理网 >> 曝光信息 >> 利用openssl生成的https的ca来访问web服务器

利用openssl生成的https的ca来访问web服务器
发布时间:02-18| 来源:公理网 | 点击发表评论
准备:
3台虚拟机的作用非常大,之前搭建zookeeper,至少要用到3个。搭建完全分布式的hadoop集群和hbase也是逐渐在这台三台计算机上做的实验。

slave-03用作CA服务器

slave-02用作http服务器

slave-01用作客户端访问https和http

还是和之前一样,使用的系统是centos6.5。系统已经为我们提供了openssl和httpd,但是默认缺少mod_ssl模块,因此,建议在实验前,先安装这个模块,如果你已经有的话就可以省略掉安装了。如果没有ssl的模块,我们是无法使用https的,这个模块一会还要配置。

------yuminstallmod_ssl。

我们可以查看一下新添加的东西

[[email protected]~]#rpm-qlmod_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

执行步骤
一、首先是制作CA的证书。
我们可以提前修改一下/etc/pki/tls/openssl.cnf。因为在签证的时候,我们需要输入很多的信息,如果提前设置默认值的话,我们在之后的签证可以直接点回车,使用默认值来签证,这样会比较的方便,但这里我使用手动的方法。

1、cd/etc/pki/tls/CA中,执行命令(umask077;opensslgenrsa-outprivate/cakey.pem1024)

这句话是生成密钥,umask077是设定掩码,文件的默认权限就会变成777-077=700.最后的1024是密钥的长度。

2、opensslreq-new-x509-keyprivate/cakey.pem-outcacert.pem

生成自签证书,这个需要写一些东西,在/etc/pki/tls/openssl.cnf文件可以定义要填写的内容。

[[email protected]]#opensslreq-new-x509-keyprivate/cakey.pem-outcacert.pem

Youareabouttobeaskedtoenterinformationthatwillbeincorporated

intoyourcertificaterequest.

WhatyouareabouttoenteriswhatiscalledaDistinguishedNameoraDN.

Therearequiteafewfieldsbutyoucanleavesomeblank

Forsomefieldstherewillbeadefaultvalue,

Ifyouenter'.',thefieldwillbeleftblank.

-----

CountryName(2lettercode)[XX]:---国家,两个字符

StateorProvinceName(fullname)[]:--省

LocalityName(eg,city)[DefaultCity]:--市

OrganizationName(eg,company)[DefaultCompanyLtd]:--组织名

OrganizationalUnitName(eg,section)[]:--组织部门

CommonName(eg,yournameoryourserver'shostname)[]:--你的名字,这个重要,要配置ssl

EmailAddress[]:--邮箱地址

3、touchindex.txt和touchserial,执行echo01serial

在/etc/pki/tls/openssl.cnf配置文件中有这么几个目录,如果没有,就自己创建。由于这里的crl和certs都有,所以我只创建了index.txt和serial文件。

dir????????????=/etc/pki/CA??????????#Whereeverythingiskept

certs??????????=$dir/certs???????????#Wheretheissuedcertsarekept

crl_dir????????=$dir/crl?????????????#Wheretheissuedcrlarekept

database???????=$dir/index.txt???????#databaseindexfile.

?
二、配置web服务器
我们依然需要为服务器创建一个密钥。

1、cd?/etc/httpd/,mkdirssl,cd?ssl,执行(umask077;opensslgenrsa-outhttpd.key)

接下来的工作是生成一个证书颁发请求。这个命令依然弹出很多的东西需要填写,所填的东西最好跟刚才CA端填写的内容一样,否则认证的时候会报错。

2、opensslreq-new-keyhttpd.key-outhttpd.csr

把httpd.csr发送到ca进行认证

3、[email protected]:/tmp

进行认证,有效期是1年

4、opensslca-in/tmp/httpd.csr-out/tmp/httpd.crt-days365

进行认证后,我们还需要将httpd.crt发回到httpd服务器,放到和httpd.key同一目录下。

5、[[email protected]]#catindex.txt

V??????171018042626Z???????????????01????unknown?/C=CH/ST=beijing/O=lenove/OU=research/CN=zzy/emailAddress=574609410@qq.com

[[email protected]]#catserial

02

查看就会发现,index.txt多了一条认证信息,而且之前写入serial中是1,现在也增加为2。
三、配置ssl模块
配置了ssl模块,我们才可以使用https访问网页。

需要配置的文件是/etc/httpd/conf.d/ssl.conf

VirtualHost192.168.174.156:443

1、DocumentRoot"/var/www/html"

2、ServerNamezzy:443

3、ErrorLoglogs/ssl_error_log

4、TransferLoglogs/ssl_access_log

5、LogLevelwarn

6、SSLEngineon

7、SSLCertificateFile/etc/httpd/ssl/httpd.crt

8、SSLCertificateKeyFile/etc/httpd/ssl/httpd.key

/VirtualHost

主要的参数就是这几个。

1这里文档的目录沿用了httpd服务器默认的html的目录,着这个目录建一个index.html,写进一句话“helloworld”

2使用刚才提到的很重要的名字,另外,这个名称要么写入hosts,要么加入dns,需要能被解析。后面的443是固定的。

3、4、5不用管

6必须是on


7,8使用的刚才生成的key和CA发送回来的crt的绝对路径。
四、访问测试
web服务器端首先要关闭防火墙,serviceiptablesstop。其次是开启httpd服务,servicehttpdstart。因为centos6.5默认已经安装了httpd,而且页面目录默认就在/var/www/html,我们可以在里面创建一个index.html文件,随便写点东西进去就可以。访问的时候,默认就是找index.html文件。

现在,我们需要用到ca服务器上的/etc/pki/CA/cacert.pem文件,把它复制到测试机上,后缀改成crt就可以,在windows下是可以直接识别安装的,在linux下则需要手动导入。你可先试试用http+ip访问,是没有问题的。再试试https://zzy访问出线如下界面

20161018183428406?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"alt=""/>




把刚才提到的httpd.crt加入到浏览器的证书模块。先点右上角的openmenu,选择preference,再点左下角的advanced,再点viewcertificates,进入导入crt的界面。

20161018183454278?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"alt=""/>




点击import,找到文件后,点击open即可

20161018183512028?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"alt=""/>




清空缓存再访问。

20161018183538356?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"alt=""/>

点赞
收藏
分享

授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

最新新闻

手机浏览

公理网 版权所有

公理网 Total 0.033817(s) query 6, 报料QQ:点击这里

给我发消息