如何在内网搭建一个HTTPS服务器?

如何在内网搭建一个HTTPS服务器?,第1张

您好!

一、首先在独立的服务器(云服务器、VPS),搭建好普通的网站,并且这个网站可以访问。

二、Gworg获取SSL证书

三、拿到SSL证书安装到服务器就实现HTTPS网站了。

注:虚拟主机通常都不支持。

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。

https: URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

1)HTTPS的主要思想是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的保护。

2)HTTPS的信任继承基于预先安装在浏览器中的证书颁发机构(如VeriSign、Microsoft等)(意即“我信任证书颁发机构告诉我应该信任的”)。

3)因此,一个到某网站的HTTPS连接可被信任,如果服务器搭建自己的https 也就是说采用自认证的方式来建立https信道,这样一般在客户端是不被信任的。

4)所以我们一般在浏览器访问一些https站点的时候会有一个提示,问你是否继续。

1 客户端打包请求 。

       其中包括URL、端口、账号和密码等。使用账号和密码登陆应该用的是POST方式,所以相关的用户信息会被加载到body中。这个请求应该包含3个方面:网络地址、协议和资源路径。注意:这里用的是HTTPS,即HTTP+SSL/TLS,在HTTP上又加了一层处理加密信息的模块(相当于加了一个锁)。这个过程相当于客户端请求钥匙。

2 服务器端接受请求。

        一般客户端的请求会先被发送到DNS服务器中。DNS服务器负责将网络地址解析成IP地址,这个IP地址对应网上的一台计算机。这其中可能发生Hosts Hijack和ISP failure的问题。过了DNS这一关,信息就到服务器端,此时客户端和服务端的端口之间会建立一个socket连接。socket一般都是以file descriptor的方式解析请求的。这个过程相当于服务器端分析是否要想客户端发送钥匙模板。

3 服务器端返回数字证书。

       服务器端会有一套数字证书(相当于一个钥匙模板),这个证书会先被发送个客户端。这个过程相当于服务端向可独断发送钥匙模板。

4 客户端生成加密信息。

        根据收到的数字证书(钥匙模板),客户端就会生成钥匙,并把内容锁起来,此时信息已经被加密。这个过程相当于客户端生成钥匙并锁上请求。

5 客户端方发送加密信息 。

       服务器端会收到由自己发送的数字证书加密的信息。这个时候生成的钥匙也一并被发送到服务端。这个过程相当于客户端发送请求。

6 服务端解锁加密信息。

         服务端收到加密信息后,会根据得到的钥匙进行解密,并把要返回的数据进行对称加密。这个过程相当于服务器端解锁请求,生成、加锁回应信息。

7 服务器端向客户端返回信息。

         客户端会收到相应的加密信息。这个过程相当于服务器端向客户端发送回应信息。

8 客户端解锁返回信息。

        客户端会用刚刚生成的钥匙进行解密,将内容显示在浏览器上。

以上内容摘自《iOS面试之道》一书,感谢作者。

1.

安装http程序,配置站点

# yum install -y httpd

# vim/etc/httpd/conf/httpd.conf

2.

为服务器申请数字证书;

(1)CA服务器端:创建私有证书颁发机构

~]# cd /etc/pki/CA

~]#(umask 077openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

~]#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out/etc/pki/CA/cacert.pem -days 3655

~]#mkdir -pv /etc/pki/CA/{certs,crl,newcerts}

~]#touch /etc/pki/CA/{serial,index.txt}

~]#echo 01 >/etc/pki/CA/serial

(2)https服务器端:发起创建证书请求

~]# mkdir /etc/httpd/ssl

~]# cd /etc/httpd/ssl

~]#(umask 077openssl genrsa -out /etc/httpd/ssl/https.key 2048)

~]#openssl req -new -key /etc/httpd/ssl/https.key -out /etc/httpd/ssl/https.csr -days 365

(3)将https服务器的请求生成文件发送给CA进行签署操作

~]# scp … …/tmp

~]# openssl ca -in/tmp/https.csr -out /etc/pki/CA/certs/https.crt -days 365

(4)将签署后的证书返回给https服务器即可使用

~]# scp … …

3.

配置httpd支持使用ssl,及使用的证书;

(1)安装并查看mod_ssl模块

[root@localhost~]# yum -y install mod_ssl

[root@localhost~]# rpm -ql mod_ssl

[root@localhost~]# httpd -M | grep ssl

4.

修改配置文件:/etc/httpd/conf.d/ssl.conf

[root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf修改部分配置

DocumentRoot

定义默认虚拟主机的文档页面

ServerName

定义默认虚拟主机的服务名

SSLCertificateFile

定义证书文件路径

SSLCertificateKeyFile

定义私钥文件

注释:

1)/etc/httpd/conf.d/ssl.conf中定义启动mod_ssl.so模块,且定义监听端口

5.<VirtualHost _default_:443>定义默认虚拟主机,当根据FQDN请求有多个站点的主机,均未找到时候会返回默认主机定义的页面。

6.

测试基于https访问相应的主机;

# openssls_client [-connect host:port] [-cert filename] [-CApath directory] [-CAfilefilename]

openssl s_client-connect172.16.249.209:443


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/485792.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-09
下一篇2023-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存