Linux上搭建https服务器
https原理:


步骤:
1、客户端浏览器向服务器发送如下信息:
(1)客户端支持的SSL/TLS协议的版本号
(2)密钥算法套件
(3)客户端产生的随机数,用于稍后生成“会话密钥”
2、服务器向客户端发送如下信息:
(1)确认使用的加密通信协议版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信
(2)确认使用的加密方法
(3)服务器证书
(4)服务器生成的随机数,用于稍后生成“会话密钥”
3、客户端利用服务器发来的信息验证服务器的合法性。如果合法性验证没有通过,通讯将断开,如果合法性通过,则可以知道认证服务器的公钥是真实有效的数字证书认证机构,并且服务器发来的公钥是值得信赖的。(加密数字证书的公钥传送给客户端,客户端用私钥解密,将数字证书解开,可以看到该服务器是可信赖的和服务器发来的公钥)
4、客户端随机产生一个用于后面会话连接的对称密钥,然后用服务器的公钥加密,将加密后的对称密钥发送给服务器。
工作流程可分为三个阶段:
(1)认证服务器
浏览器内置一个受信任的CA机构列表,并保存了这些CA机构的证书。第一阶段服务器会提供经CA机构认证颁发的服务器证书,如果认证该服务器证书的CA机构存在于浏览器的受信任CA机构列表中,并且服务器证书中的信息与当前正在访问的网站(域名)一致,那么浏览器就认为服务端是可信的,并从服务器证书中取得服务器公钥,用于后续流程,否则,浏览器将提示用户,根据选择是否继续。也可管理受信任的CA机构列表,向其中添加我们想要信任的CA机构。
(2)协商会话密钥
客户端在认证完服务器后,通过服务器的公钥与服务器进行加密通信,协商出两个对称的会话密钥,分别用于加密客户端往服务端发送数据的客户端会话密钥,用于加密服务端往客户端发送数据的服务端会话密钥。(还要协商对称会话密钥,是因为非对称加密相对复杂度更高,在数据传输过程中,使用对称加密,可以节省计算资源,另外,会话密钥是随机生成,每次协商都会有不一样的结果,安全性更高)
(3)数据加密通信
此时客户端服务器都有了本次通信的会话密钥,之后传输的所有http数据,都通过会话密钥加密。从而保证了数据的私密性和完整性。
##其中非对称加密算法用于握手过程中加密生成的密码,对称加密算法用于对真正的传输数据进行加密,hash算法用于验证数据的完整性
非对称加密算法:RSA、DSA/DSS
对称加密算法:AES、3DES、RC4
hash算法:MD5、SHA1、SHA256
配置:
X.509通用的证书格式包含三个文件:
key:私钥文件
csr:证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
crt:是CA机构签名后的证书,包含证书中的信息。
例:配置安全web服务站点http://www.openlab.com配置SSL加密,
要求:生成自签名证书文件为openlab.crt,私钥文件为openlab.key
第一步:安装SSL
#yum install mod_ssl -y
#rpm -qa mod_ssl
第二步:创建访问文件目录及其内容
#mkdir /www/openlab
#echo this is openlab > /www/openlab/index.html
第三步:编辑配置文件
#vim /etc/httpd/conf.d/vhost.conf
通过#sp命令打开/etc/httpd/conf.d/ssl.conf来复制粘贴五行SSL开头的内容,此处图片内容的.crt和.key路径已修改
第四步:注册证书
#cd /ect/pki/tls/certs
#make openlab.crt
第五步:修改/etc/httpd/conf.d/vhost.conf中的.crt和.key
路径
第六步:在/etc/hosts下输入ip绑定的域名
第七步:重启http服务
#systemctl restart httpd
第八步:浏览器测试


http://www.dtmao.cc/news_show_1307991.shtml
Linux上搭建https服务器的更多相关文章
- CentOS Linux上搭建PPPoE服务器及拨号设置
CentOS Linux上搭建PPPoE服务器及拨号设置 搭建PPPoE,成功了的话,就觉得超级简单,在CentOS Linux更是5步左右就能搞定. 1.安装pppoe,安装完成后,会有pppoe- ...
- linux上搭建图片服务器
之前写过一个搭建图片服务器的随笔:https://www.cnblogs.com/xujingyang/p/7163290.html ,现在回头看看,我去,感觉写的好乱,现在再整一个吧.o(╯□╰ ...
- linux上搭建ftp服务器
摘要 vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行 ...
- 在linux上搭建SVN服务器并自动更新至WEB目录
1.仓库放在 /var/svn/ 目录下,并且仓库名为 project 2.创建用户组user,该组下添加两个成员user1.user2,密码直接用用户名,两用户可以checkout代码和提交代码 3 ...
- Linux上搭建Elasticsearch服务器并同步数据库
1.准备工作 下载Elasticsearch版本号2.3.4 https://www.elastic.co/downloads/past-releases/elasticsearch- ...
- linux上搭建svn服务器
1.检查当前版本,没有的话用yum安装rpm -qa subversion 2.安装yum install subversion -y 2.建库mkdir -p /home/svn/projectsv ...
- Linux上部署web服务器并发布web项目-转
Linux上部署web服务器并发布web项目 近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以 ...
- Linux上部署web服务器并发布web项目
近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以及我对此做的一些总结和个人的一些见解,希望对跟我一 ...
- windows 上搭建 sftp 服务器 -freesshd全过程( 在linux上部署逐浪CMS的必读教程)
文章标题: windows 上搭建 sftp 服务器 - freesshd全过程 关键字 : freesshd 文章分类: 教程 创建时间: 2020年3月23日 缘由 动手 第一步:添加用户 第二步 ...
随机推荐
- 风炫安全WEB安全学习第十八节课 使用SQLMAP自动化注入(二)
风炫安全WEB安全学习第十八节课 使用SQLMAP自动化注入(二) –is-dba 当前用户权限(是否为root权限) –dbs 所有数据库 –current-db 网站当前数据库 –users 所有 ...
- 【JavaWeb】书城项目
书城网站 项目说明 项目地址 阶段一 登录.注册的验证 使用 jQuery 技术对登录中的用户名.密码进行非空验证: 使用 jQuery 技术和正则表达式对注册中的用户名.密码.确认密码.邮箱进行格式 ...
- 【Linux】配置ssh留下的一些思考和大坑解决办法
今天传包突然有问题,结果发现是ssh出现了问题,密钥也在里面,都是正常的,但是还有什么问题呢? 后来总结下需要注意点: 1.最开始你要检查.ssh/ 这个文件夹的权限,看下权限是否为700或者为75 ...
- 开发进阶:Dotnet Core多路径异步终止
今天用一个简单例子说说异步的多路径终止.我尽可能写得容易理解吧,但今天的内容需要有一定的编程能力. 今天这个话题,来自于最近对gRPC的一些技术研究. 话题本身跟gRPC没有太大关系.应用中,我用 ...
- SAP中使用FTP服务
SAP中简单的FTP技术实现基本上如下几个步骤: 1.SM59建立FTP的RFC destination. 可以通过执行SAP的标准程序RSFTP005,自动创建两个名为SAPFTP何SAPFTPA的 ...
- 安装git-macOS系统
通过homebrew安装Git 1.安装homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/H ...
- Wi-Fi IoT套件连PCF8563实现电子钟功能
首先跟同样新入手单片机开发的小伙伴分享一点I2C通信的知识.我估计大部分入手开发板的小伙伴都有一定程序开发的能力,但是底层开发可能是新接触,我看有的小伙伴配置开发环境都有障碍,其实并不是多复杂,只是首 ...
- 开心!再也不用担心 IntelliJ IDEA 试用过期了
背景 前段时间 Review 团队小伙伴代码,发现当他把鼠标挪到一个方法上时,就自动显示了该方法的所有注释信息,像下图这样,他和我用的 IDE 都是 IntelliJ IDEA. 而我还按古老的方式, ...
- java虚拟机入门(二)-探索内存世界
上节简单介绍了一下jvm的内存布局以及简单概念,那么对于虚拟机来说,它是怎么一步步的让我们能执行方法的呢: 1.首先,jvm启动时,跟个小领导一样会根据配置参数(没有配置的话jvm会有默认值)向大领导 ...
- 如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...