使用自签搭建https

作为笔记。。。以后有时间再整理把。。。
httpd-2.2实现

Centos 6自带的base仓库里的httpd默认就是httpd2.2,所以可以直接使用yum install httpd 安装

[root@test1 ~]# yum install httpd

(1) 提供两个基于名称的虚拟主机:

www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log;

www2.stuX.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2/error_log,访问日志为/var/log/httpd/www2/access_log;

实现步骤

1.先创建对应的网站目录和对应的日志目录

[root@test1 ~]# mkdir -pv /web/vhosts/www1

mkdir: 已创建目录 "/web"

mkdir: 已创建目录 "/web/vhosts"

mkdir: 已创建目录 "/web/vhosts/www1"

[root@test1 ~]# mkdir -pv /web/vhosts/www2

mkdir: 已创建目录 "/web/vhosts/www2"

[root@test1 ~]# mkdir -pv /var/log/httpd/www1/

mkdir: 已创建目录 "/var/log/httpd/www1/"

[root@test1 ~]# mkdir -pv /var/log/httpd/www2/

mkdir: 已创建目录 "/var/log/httpd/www2/"

2.http-2.2的配置

[root@test1 ~]# vim /etc/httpd/conf.d/vhost.conf  //新建虚拟主机配置文件

Namevirtualhost *:80         //在httpd-2.2中启用虚拟主机这指令是必须的,虚拟主机和主服务不能共存。

<Virtualhost *:80>

Documentroot "/web/vhosts/www1"

Servername [www1.stu.com](http://www1.stu.com/)

CustomLog /var/log/httpd/www1/access_log combined

ErrorLog /var/log/httpd/www1/error_log

        <Directory "/web/vhosts/www1">

                order allow,deny

                Deny from 192.168.1.0/24                //拒绝192.168.1.0/24的访问

                allow from all             

        </Directory> 

        <location /status>                 //设置一个URL页面,访问这个页面的内容由配置块所定义

                Sethandler server-status    

                Authtype "basic"

                Authname " authentication"          //提示信息

                authuserfile "/etc/httpd/htuser"

                require user "admin"

        </location>

</Virtualhost>

<Virtualhost *:80>

documentroot "/web/vhosts/www2"

servername "[www2.std.com](http://www2.std.com/)"

Errorlog "/var/log/httpd/www2/error_log"

customlog "/var/log/httpd/www2/accerr_log" combined

        <directory "/web/vhosts/www2">

                order allow,deny

                Allow from all

        </directory>

</virtualhost>

3.http-2.4的配置

1.先创建对应的网站目录和对应的日志目录

[root@test1 ~]# mkdir -pv /web/vhosts/www1

mkdir: 已创建目录 "/web"

mkdir: 已创建目录 "/web/vhosts"

mkdir: 已创建目录 "/web/vhosts/www1"

[root@test1 ~]# mkdir -pv /web/vhosts/www2

mkdir: 已创建目录 "/web/vhosts/www2"

[root@test1 ~]# mkdir -pv /var/log/httpd/www1/

mkdir: 已创建目录 "/var/log/httpd/www1/"

[root@test1 ~]# mkdir -pv /var/log/httpd/www2/

mkdir: 已创建目录 "/var/log/httpd/www2/"   

2.[root@test1 ~]# vim /etc/httpd/conf.d/vhost.conf  //新建虚拟主机配置文件

<virtualhost *:80>

documentroot "/web/vhosts/www1"

Servername "[www1.std.com](http://www1.std.com/)"

Errorlog "/var/log/httpd/www1/error_log"

Customlog "/var/log/httpd/www1/access_log" combined

    <directory "/web/vhosts/www1">

        options none

        allowoverride none

        <Requireall>

            require not ip 192.168.1.0/24

            require all granted

        </requireall>

    </directory>

    <location /status>

        options none

        allowoverride none

        Sethandler server-status

        authtype basic

        authuserfile "/etc/httpd/htuser"

        authname "authentication"

    <RequireAll>

            Require user admin

    </Requireall>

    </location>

</virtualhost>

<virtualhost *:80>

documentroot "/web/vhosts/www2"

Servername "[www2.std.com](http://www2.std.com/)"

errorlog "/var/log/httpd/www2/error_log"

Customlog "/var/log/httpd/www2/access_log" combined

    <directory "/web/vhosts/www2">

    options none

    allowoverride none

    require all granted

    </directory>

</virtualhost>

www2.std.com创建https,使得用户可以通过https安全的访问此web站点;

环境:
Centos7 作为http服务器:IP:192.168.30.138
Centos6 构建一个私有CA,负责签署Centos7的证书

#Centos6作为CA认证机构,需要给自己颁发一个自签证书。
#创建一个私钥:
    [root@test1 CA]# (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pri 4096)  生成私钥    

#生成自签证书

[root@test1 CA]#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pri -out /etc/pki/CA/cacert.pem -days 365

填好证书信息后。

#为CA提供所需的目录及文件。

[root@test1 CA]# mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}

[root@test1 CA]# touch  /etc/pki/CA/{serial,index.txt}

[root@test1 CA]# echo  01 > /etc/pki/CA/serial

OK,CA的自签证书完成,接下来,需要在httpd的服务器上生成证书,然后拿去CA签一下

httpd服务器

首先生成一个私钥,然后再生成一个证书。

生成密钥

[root@test2 ssl]# (umask 077 ; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

生成证书

**[root@test2 ssl]# openssl req -new -key http.key -out httpd.csr -days 365    //注意这里只是新建一个待签证书。和CA自签署不一样**

上传到CA机构签署

[root@test2 ssl]# scp httpd.csr root@192.168.30.128:/etc/pki/CA/httpd.scr

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

RSA key fingerprint is 2c:28:b3:8b:c1:06:7c:6f:88:c2:6b:68:68:f3:5d:ea.

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

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

root@192.168.30.128's password:

httpd.csr  

在Centos6上签署证书

[root@test1 CA]# openssl ca -in /tmp/httpd.csr -out certs/httpd.crt -days 365

Using configuration from /etc/pki/tls/openssl.cnf

Check that the request matches the signature

Signature ok

Certificate Details:

        Serial Number: 2 (0x2)

        Validity

            Not Before: May 12 04:52:51 2018 GMT

            Not After : May 12 04:52:51 2019 GMT

        Subject:

            countryName               = CN

            stateOrProvinceName       = BeiJing

            organizationName          = Mageedu

            organizationalUnitName    = Ops

            commonName                = [www1.std.com](http://www1.std.com/)

        X509v3 extensions:

            X509v3 Basic Constraints:

                CA:FALSE

            Netscape Comment:

                OpenSSL Generated Certificate

            X509v3 Subject Key Identifier:

                16:ED:BE:9F:6C:EA:6F:20:84:AA:BC:5C:6C:EE:7A:BF:04:91:49:1B

            X509v3 Authority Key Identifier:

                keyid:03:EC:5C:E8:4F:67:5F:AF:05:49:73:EB:CE:7D:88:3E:C9:82:3B:80

Certificate is to be certified until May 12 04:52:51 2019 GMT (365 days)

Sign the certificate? [y/n]:y

failed to update database

TXT_DB error number 2

签完后,重新scp到httpd服务器

[root@test1 CA]# scp certs/httpd.crt root@192.168.30.138:/etc/httpd/ssl/httpd_crt.pem

root@192.168.30.138's password:

httpd.crt                                                  100%    0     0.0KB/s   00:00    

[root@test1 CA]#

配置httpd服务器,为www2.std.com做https,在ssl的配置文件写入需要使用https的虚拟主机就可以了。

[root@test2 httpd]# vim conf.d/ssl.conf

        Listen 443 https            //监听443端口,并且只能是https协议

        DocumentRoot "/web/vhosts/www2"    //向80端口的虚拟主机提供https服务

        ServerName [www2.std.com:443](http://www2.std.com:443/)

        SSLCertificateFile /etc/httpd/ssl/httpd_crt.pem  //CA机构签发的证书,用于发给客户端

        SSLCertificateKeyFile /etc/httpd/ssl/http.key      //证书的私钥,以为客户端是用证书的公钥来加密对称加密的密钥,所以需要指定该公钥对应的私钥,用于解密对称加密的密钥。

5.测试

我在虚拟机上开启一个suse,用作客户端,先把自签的CA证书加入浏览器的信任机构中,这样,就可以信任该签证的证书了。

获取CA自签证书

www1:~ # scp root@192.168.30.128:/etc/pki/CA/cacert.pem ./

在浏览器中把证书导入到信任机构中


5.4导入成功后,测试https站点。

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容