Linux下使用https访问站点

简介:

一:https简介:

http传输协议传输数据是以明文的方式传送的,所以用户的任何数据封包都可能被监听窃取,为了提高系统的安全性,需要用到https协议,这样方式采用了

ssl(安全套接字层)加密机制。ssl利用非配对的key pair(公钥和私钥)来组成密钥,然后使用公钥加密后传输,目标主机再以私钥来解密,这样在internet

上传输的数据为密文,这些数据就相对安全。要使用安全协议,www服务器就必须要启动https传输协议,而浏览器必须在网址列输入https://开头的网址,

两者才能够进行沟通和联机。

image

二:CA介绍:

CA是一个公认的公正单位,用户可以向其注册一个public key,客户端浏览器在浏览资源时,会主动的向CA单位确认该public key是否为合法注册过的,如

果是则该次联机才会建立,如果不是,浏览器就会发出警告信息。

三:web服务器类型:

www服务器的类型有www平台和网页程序语言与数据库(lamp)。而目前www服务器软件主要有apache和iis。apache是自由软件,可以在任何操作系统上

安装,iis是windows下的,仅能在windows操作系统上安装与执行。

案例一:在Linux上安装apache,建立openCA向服务器颁发证书,实现客户端使用https向web服务器的请求。

image 

一:架构CA服务器:

1:[root@localhost ~]# mkdir /mnt/cdrom

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/

[root@localhost ~]# cd /mnt/cdrom/Server/

[root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm

2:[root@localhost Server]# cd /etc/pki/

[root@localhost pki]# vim tls/openssl.cnf         #编辑该文家如图:

image

image

image 

[root@localhost CA]# mkdir crl           #放置证书吊销列表

[root@localhost CA]# mkdir certs         #已经发行过的证书存放的位置

[root@localhost CA]# mkdir newcerts          #新发行的证书存放位置

[root@localhost CA]# touch serial         #颁发证书的初始值

[root@localhost CA]# echo "01">serial         #将01赋予serial,作为初始值

[root@localhost CA]# touch index.txt         #数据库的索引文件

[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem         #利用1024的非对称加密算法rsa,算出一个密钥放置在cakey.com文件中

[root@localhost CA]# chmod 600 private/cakey.pem           #将cakey.com文件设置为600

[root@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650      #利用自己的私钥为自己(CA服务器)产

生一个证书叫cacert.pem。-x509表示证书类型,证书有效时间3650天,-out表示输出     如图:

image

二:配置web服务器:

1:[root@localhost pki]# mkdir -pv /etc/httpd/certs           #创建一个存放私钥,证书请求,申请证书的文件

[root@localhost pki]# cd /etc/httpd/certs/        

[root@localhost certs]# openssl genrsa 1024 >httpd.key         #使用长度为1024的非对称加密算法rsa,重定向到存放私钥的文件httpd.key中

[root@localhost certs]# chmod 600 httpd.key               #修改httpd.key的权限为600,只有当前用户为可读可写,组用户及其他用户都无任何权限

[root@localhost certs]# openssl req -new -key httpd.key -out httpd.csr            #利用存放私钥的文件httpd.key请求得到一个证书请求,请求产生的文

件叫httpd.csr

image

[root@localhost certs]# openssl ca -in httpd.csr -out httpd.cert  #利用ca产生一个证书,请求文件是当前目录下的httpd.csr,申请一个证书

httpd.cert

[root@localhost certs]# chmod 600 *          #将所有文件的权限改为600,只允许当前用户为可读可写,组用户及其他用户都无任何权限

2:[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo           #编辑yum服务器,如图:

image

[root@localhost ~]# cd /mnt/cdrom/Server/

[root@localhost Server]# yum install mod_ssl       #使用yum安装httpds和ssl结合的模块文件mod_ssl

[root@localhost Server]# cd /etc/httpd/conf.d/   

[root@localhost conf.d]# cp -p ssl.conf ssl.conf.bak           #将ssl.conf文件备份一下  

[root@localhost conf.d]# vim ssl.conf            #编辑该文件,如图:

image

3:[root@localhost conf.d]# service httpd configtest            #检查httpd配置文件的语法

[root@localhost conf.d]# service httpd restart

[root@localhost conf.d]# netstat -tupln |grep httpd          #查看http服务器的端口是否启动

image

[root@localhost pki]# vim /var/www/html/index.html            #编辑页面如图:

image

[root@localhost pki]# service httpd restart

4:用windows   xp主机进行测试。查看https是否能用:

image 

image 

5:[root@localhost conf.d]# vim ssl.conf      #如图:

image

[root@localhost pki]# service httpd restart

6:

image

image

查看证书的颁发机构:

image

image

7:上一步骤中,显示“安全证书上的名称无效,或者与站点名称不匹配”,可以做如下修改:

image

然后使用主机名称登陆:

image

image

案例二:建立三个站点,基于ip地址的虚拟主机,主站点使用http访问,技术部tec和市场部mkt使用https访问。需要为tec和mkt向CA服务器请求两个证书。

一:首先从CA服务器上申请证书:(此案例需要申请一个证书,另外一个证书使用案例一的)

1:[root@localhost ~]# mkdir /mnt/cdrom/

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/

[root@localhost ~]# mkdir /etc/httpd/certs111        #创建一个存放私钥,证书请求,申请证书的目录

[root@localhost ~]# cd /etc/httpd/certs111/              

[root@localhost certs111]# openssl genrsa 1024 >httpd.key111           #利用1024为非对称加密算法rsa,得到一个私钥,存放在httpd.key111文件中

[root@localhost certs111]# openssl req -new -key httpd.key111 -out httpd.csr111         #利用存放私钥的文件求httpd.key111请得到一个证书请求,请求产生的文件叫httpd.csr111   ,如图:

image

[root@localhost certs111]# openssl ca -in httpd.csr111 -out httpd.cert111            #利用ca产生一个证书,请求文件是当前目录下的httpd.csr111,申请一个证书httpd.cert111

[root@localhost certs111]# chmod 600 *          #将所有文件的权限改为600,只允许当前用户为可读可写,组用户及其他用户都无任何权限

[root@localhost certs111]# yum install mod_ssl           #使用yum安装httpds和ssl结合的模块文件mod_ssl

[root@localhost certs111]# cd /etc/httpd/conf.d/           

[root@localhost conf.d]# vim ssl.conf               #编辑该文件,如图:

image

image

image

image

二:创建基于ip地址的虚拟主机:

1:[root@localhost ~]# cd /mnt/cdrom/Server/

[root@localhost Server]# ifconfig eth0:1 192.168.101.36                #为网卡eth0添加ip地址

[root@localhost Server]# ifconfig eth0:2 192.168.101.46                #为网卡eth0添加ip地址

[root@localhost www]# mkdir tec                #创建目录tec,用于存放tec站点的网页

[root@localhost www]# mkdir mkt               #创建目录mkt,用于存放mkt站点的网页

[root@localhost www]# vim tec/index.html        #编辑网页

[root@localhost www]# vim mkt/index.html

[root@localhost www]#vim /etc/httpd/conf/httpd.conf              #修改配置文件如图:

image

image

image 

测试:站点主页:

image

测试:tec站点:监听443端口

image

image 

image

image

测试:mkt站点:监听443端口

image

image

image 

image










本文转自 liuyatao666 51CTO博客,原文链接:http://blog.51cto.com/5503845/968688,如需转载请自行联系原作者
目录
相关文章
|
2天前
|
SQL 关系型数据库 MySQL
Linux系统部署Yearning SQL审核平台结合内网穿透实现公网访问
Linux系统部署Yearning SQL审核平台结合内网穿透实现公网访问
|
2天前
|
Web App开发 缓存 前端开发
《手把手教你》系列技巧篇(四十四)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
【5月更文挑战第8天】这篇文档介绍了如何在IE、Chrome和Firefox浏览器中处理不信任证书的问题。作者北京-宏哥分享了如何通过编程方式跳过浏览器的证书警告,直接访问不受信任的HTTPS网站。文章分为几个部分,首先简要介绍了问题背景,然后详细讲解了在Chrome浏览器中的两种方法,包括代码设计和运行效果,并给出了其他浏览器的相关信息和参考资料。最后,作者总结了处理此类问题的一些通用技巧。
16 2
|
2天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-上篇(详解教程)
【5月更文挑战第7天】本文介绍了如何在Java+Selenium自动化测试中处理浏览器对不信任证书的处理方法,特别是针对IE、Chrome和Firefox浏览器。在某些情况下,访问HTTPS网站时会遇到证书不可信的警告,但可以通过编程方式跳过这些警告。
13 1
|
2天前
|
网络协议 Shell Linux
LabVIEW 在NI Linux实时设备上访问Shell
LabVIEW 在NI Linux实时设备上访问Shell
|
2天前
|
关系型数据库 MySQL Linux
Linux 文件访问权限说明
Linux 文件访问权限说明
12 0
|
2天前
|
安全 Linux 网络安全
Linux _ apache服务器部署 不同域名—访问不同网站(多网站)
Linux _ apache服务器部署 不同域名—访问不同网站(多网站)
|
2天前
|
Linux 开发者
【亮剑】Linux系统中的四种文件锁定机制:flock、fcntl、lockfile和flockfile,用于多进程环境下协调共享资源访问,防止数据损坏和竞争条件
【4月更文挑战第30天】本文介绍了Linux系统中的四种文件锁定机制:flock、fcntl、lockfile和flockfile,用于多进程环境下协调共享资源访问,防止数据损坏和竞争条件。flock适合脚本,fcntl提供底层灵活性,lockfile用于管理锁定文件,flockfile则结合两者功能。选择锁定策略时需考虑应用场景,如脚本可选flock,复杂需求则用fcntl。理解并正确使用这些工具对保证系统稳定性和数据一致性至关重要。
|
2天前
|
运维 网络协议 Linux
Linux(28) Linux双网卡配置为连接到Linux主机的PC提供外网访问
Linux(28) Linux双网卡配置为连接到Linux主机的PC提供外网访问
55 1
|
2天前
|
数据可视化 Linux Docker
Linux系统使用Docker部署Dashy导航页服务并实现公网环境访问
Linux系统使用Docker部署Dashy导航页服务并实现公网环境访问
|
2天前
|
网络协议 数据管理 Linux
如何在Linux部署OpenGauss数据管理系统并实现固定公网地址访问
如何在Linux部署OpenGauss数据管理系统并实现固定公网地址访问