搭建HTTPS服务端

https和http的主要区别:
  一、https协议需要到ca机构申请ssl证书(如沃通CA),另外沃通CA还提供3年期的免费ssl证书
[http://freessl.wosign.com](http://freessl.wosign.com/),高级别的ssl证书需要一定费用。
  二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
  三、http和https使用的是完全不同的连接方式,用的端口也不一样,http是80端口,https是443端口。
  四、http的连接很简单,是无状态的;https协议是由ssl+http协议构建的可进行加密传输、身份认证
的网络协议,比http协议安全。
【如何搭建https站点】
  说到https站点的搭建,就不得不提到ssl协议。ssl是Netscape公司率先采用的网络安全协议。它是在
传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。ssl广泛支持各种类型的网络,同时提供
三种基本的安全服务,它们都使用公开密钥技术。
  ssl的作用:
  1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
  2)加密数据以防止数据中途被窃取;
  3)维护数据的完整性,确保数据在传输过程中不被改变。
  而ssl证书指的是在ssl通信中验证通信双方身份的数字文件,一般分为服务器证书和客户端证书,我们通
常说的ssl证书主要指服务器ssl证书。ssl证书由受信任的数字证书颁发机构CA(如沃通WoSign),在验证服务
器身份后颁发,具有服务器身份验证和数据传输加密功能。分为扩展验证型EV ssl证书、组织验证型OV ssl证
书和域名验证型DV ssl证书。

实现https

环境
1.三台主机分别为A,B,C。
2.A主机设置为CA和DNS服务器,ip为172.18.70.40
3.B主机为client,ip为172.18.70.70
4.C主机为httpd server,ip为172.18.70.80
5.已经在三台主机上启动了httpd服务,并且可以正常访问自己的网页。
1.在A主机上创建CA和DNS服务器
1)创建所需要的文件
    生成证书索引数据库文件:
        touch /etc/pki/CA/index.txt  
            系统会自动生成个index.txt.attr文件。用来决定是否使证书为唯一性,也就是是否可以重复申请证书。
    指定第一个颁发证书的序列号:
        echo 01 > /etc/pki/CA/serial 
2)CA自签证书
   生成私钥:
        cd /etc/pki/CA/
        openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048
        chmod 600 cakey.pem
    生成自签名证书:
        openssl req -new -x509 –key /etc/pki/CA/private/cakey.pem -days 7300 -out  /etc/pki/CA/cacert.pem
3)创建DNS服务器
    1》vim  /etc/named.conf
        options {
                   listen-on port 53 {  any ; };
        //   listen-on-v6 port 53 { ::1; };
            directory   "/var/named";
            dump-file   "/var/named/data/cache_dump.db";
                statistics-file "/var/named/data/named_stats.txt";
                memstatistics-file "/var/named/data/named_mem_stats.txt";
                   allow-query     { any ; };
            recursion yes;
            dnssec-enable no;
            dnssec-validation no;
            dnssec-lookaside no;
    2》关闭防火墙和设置selinux为permissive
        iptables -F
        setenforce 0
        
    3》创建解析
        1>vim /etc/named.rfc1912.zones
            zone "ab.com" IN {
                type master;
                file "ab.com.zone";
            };
        2>named-checkconf
        3>cd  /var/named/
        4>cp -a named.localhost ab.com.zone
        5>vim   ab.com.zone
            $TTL D
            @   IN SOA  dns  admin.ab.com. (
                                3   ; serial
                                D  ; refresh
                                H  ; retry
                                W  ; expire
                                H )    ; minimum
                NS  dns
            dns A   172.18.70.40
            websrv  A     172.18.70.40
            mail    A     172.18.70.40
            www   CNAME  websrv
        6>named-checkzone ab.com /var/named/ab.com.zone
        7>重新加载
            rndc reload
            service named reload or systemctl reload  named
            不行的话清除服务缓存,再来一遍
            rndc flush
            最有效的方式是重启服务(正常工作中尽量别这么用,怕影响其他的同步)
            service named restart or systemctl restart named
        8>rndc status
2.在C主机
1)指向DNS服务器
    vim /etc/resolv.conf
        nameserver 172.18.70.80
    测试:
        dig -t A www.ab.com 
2)向CA申请证书
    1》生成证书请求
        生成私钥:
            (umask 066; openssl genrsa -out /etc/pki/tls/private/http.key 2048)
        生成证书申请文件:
            openssl req -new -key /etc/pki/tls/private/http.key  -days 365 -out /etc/pki/tls/http.csr
    2》将证书请求文件传输给CA
        scp /etc/pki/tls/http.csr root@172.18.70.80:
3.在A主机
1)CA签署证书:
    openssl ca -in /tmp/http.csr –out  /etc/pki/CA/certs/http.crt -days 365
     注意:
        默认国家,省,公司名称三项必须和CA一致,但可以修改/etc/pki/tls/openssl.cnf
        common name要使用此主机在通信真实使用的名字
2)CA证书和CA签署的证书发送给C主机,然后在C主机上进行配置。
    scp /etc/pki/CA/certs/http.crt root@172.18.70.40:
    scp /etc/pki/CA/private/cakey.pem root@172.18.70.40:
4.在C主机
1)安装mod_ssl模块
    yum -y install mod_ssl
2)编辑ssl.conf配置文件
    vim /etc/httpd/conf.d/ssl.conf     配置文件路径
        DocumentRoot "/var/www/html"
        SSLCertificateFile /etc/pki/tls/certs/httpd.crt     默认证书路径
        SSLCertificateKeyFile /etc/pki/tls/private/httpd.key   默认私钥路径
        SSLCACertificateFile /etc/pki/CA/cacert.pem
    注:
        注意文件的路径,你放在那里就写成什么路径。
3)重启服务,并进行测试
    httpd -t  检查语法
    service httpd  restart or systemctl restart httpd
    ss -tnl | grep 443    查看是否监听在443端口
    curl  --cacert  /path to/cacert.pem   https://www.ab.com
5.在B主机
1》vim /etc/resolv.conf
    nameserver 172.18.70.40     (尽量就填写一个)
2》测试
    curl www.ab.com
3)CA证书导入
    1》A证书从A主机上拷贝过来
        scp root@172.18.70.70:/etc/pki/CA/cacert.pem /root/
    2》测试
        curl --cacert /root/cacert.pem https://www.ab.com
当在B主机上测试成功时,这个https就大致实现了。不过呢,一般都设置个强制跳转,也就是http直接跳到https上。
6.http重定向https(强制跳转)
在C主机上
    vim /etc/httpd/conf/httpd.conf
        Redirect  temp|permanent   /    https://www.ab.com
        注:
            temp为临时跳转代号302,permanent为永久跳转代号301,二者二选一。
    service httpd restart or systemctl restart httpd
实际上,在实际运行中不是用上面的方法来把http重定向为https的,而是采用HSTS。HSTS使http调整到https的
过程中没有网络过程,减少请求次数,节约了网络资源,所以应用更为广泛。
7.HSTS实现http重定向https
在C主机上
  vim /etc/httpd/conf/httpd.conf

        Header always set Strict-Transport-Security "max-age=15768000"
        RewriteEngine on
        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
    service httpd restart or systemctl restart httpd
8、用IE浏览器验证,因为这是自签名证书,浏览器会报警说不安全,点继续流量就好了。
客户机上输入:https://服务器ip地址
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容

  • 实际环境 系统环境 macOS Sierra(10.12.5) Apache Apache/2.4.25 (Uni...
    boborz阅读 18,581评论 1 23
  • httpd相关: httpd程序版本: 。1.3 停止维护 。2.0 。 2.2 event为测试使用 。 2.4...
    ckhzw阅读 390评论 0 0
  • 1.Linux下如何用命令查看实时日志(完整命令) tail -f 路径.log查看前多少行 tai-200f 路...
    qianyewhy阅读 2,258评论 0 11
  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 2,876评论 0 7
  • 别时未问相见期,别后空候守蕃篱。 暮色黄昏云飞落,流光难书再见情。
    春雨微寒阅读 143评论 0 0