基于httpd建立私有CA实现https加密连接

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

    有关于https是什么,点击连接查看百度百科:https://baike.baidu.com/item/https/285356?fr=aladdin

一、准备工作

    在开始实验之前,我们要准备至少两台主机还有自身的计算机,一台作为服务器,另外一台作为私有CA机构,我们要保证这两台主机之间可以互相ping通,并且都能于真实计算机ping通,也就是这三台机器能够互相通信。

    在这里,我准备了两台虚拟机,操作系统分别为CentOS 7 和 CentOS 6 ,CentOS 7 使用的IP地址为172.16.7.100,CentOS 6 使用的IP地址为172.16.128.4。我将CentOS 7 作为提供http服务的服务器,CentOS 6 作为CA机构,三台机器的功能如图:

wKiom1nh7I3zKeV4AAA7pE9XUbo768.png-wh_50

二、建立CA

    首先在IP为172.16.128.4的主机上建立CA,并将自己的信息写到认证中去:

1
2
3
4
5
~] # cd /etc/pki/                                                            #切换工作目录
CA] # touch index.txt                                #然后再当前目录下创建两个文件
CA] # echo 01 > serial                               #在认证时会用到,如果不创建会报错
CA] # (umask 077;openssl genrsa -out private/cakey.pem 2048)                     #创建私钥
CA] # openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300   #认证自己

wKiom1nh_-iANNelAAC6CciaKHw638.png-wh_50

三、创建申请

    CA建立完了,我们就要开始建立自身的认证了,首先回到当作服务器的主机(172.16.7.100),找到一个目录来存储认证文件,在这里我将“/myweb/wordpress/ssl”作为存放目录(随便放,后面使用绝对路径引用,放在一个安全的地方),然后使用下面的命令创建私钥:

1
2
ssl] # (umask 077;openssl genrsa -out httpd.key 1024)
ssl] # openssl req -new -key httpd.key -out httpd.csr

    在填写信息的时候注意:国家要求两个字符,服务器填写虚拟主机的域名

wKioL1niAXTjw1UIAADX99UBd78874.png-wh_50

四、申请及审批

    认证文件都创立完成之后,就可以把服务器上生成的申请信息发送到CA上进行认证,使用下面这条命令可以方便的将文件上传:

1
ssl] # scp httpd.csr root@172.16.128.4:/tmp/          #此命令在172.16.7.100(服务器上执行)

    在一段时间等待之后,就会提示要输入密码,在输入密码之后再等待一段时间,出现如图所示画面就说明文件上传成功:

wKioL1niAquS3DsCAABCx4drXo4327.png-wh_50

    切换到CA(172.16.128.4)上执行下面的命令完成认证(根据提示选择yes即可):

1
CA] # openssl ca -in /tmp/httpd.csr -out certs/myweb.wordpress.com.crt -days 365

    在认证完成之后,在通过scp命令将认证完成生成的文件传送回去:

1
CA] # scp certs/myweb.wordpress.com.crt 172.16.7.100:/myweb/wordpress/ssl/

    回到服务器(172.16.7.100)上,即可在“/myweb/wordpress/ssl”里边看到myweb.wordpress.com.crt文件,到这里私有CA和证书颁发就完成了。

五、浏览器查看

    证书颁发完成,但是我们还是不能在浏览器中看到,如果想要在浏览器里使用https,需要“mod_ssl”,使用下面的命令来安装:

1
~] # yum install -y mod_ssl

    在安装完成之后,就会在“/etc/httpd/conf.d/”下生成一个配置文件:ssl.conf,编辑这个文件:

1
~] # vim /etc/httpd/conf.d/ssl.conf

    将文件中下面两个选项(一般分别在101行和108行)改成下面这样(这两个文件放在哪就改成哪):

1
2
SSLCertificateFile  /myweb/wordpress/ssl/myweb .wordpress.com.crt
SSLCertificateKeyFile  /myweb/wordpress/ssl/httpd .key

    改完之后保存退出,重新加载httpd配置:

1
~] # systemctl restart httpd

    使用命令“ss -tnl”查看,可以看到443端口已经被监听了,这个端口就是默认的https端口:

wKiom1niCLTxzvmbAACEpuEMUvo807.png-wh_50

    到此https就配置完成,下面进行测试,在“/etc/httpd/conf.d/”中创建一个虚拟主机:

1
ssl] # vim /etc/httpd/conf.d/vhost.conf

    写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
<VirtualHost *:443>
         ServerName myweb.wordpress.com
         DocumentRoot  /myweb/wordpress
         ErrorLog logs /wordpress-error_log
         CustomLog logs /wordpress-access_log  combiend
         DirectoryIndex index.html
         <Directory  "/myweb/wordpress" >
                 Options Indexes
                 AllowOverride   None
                 Require all granted
         < /Directory >
< /VirtualHost >

    然后创建目录“/myweb/wordpress”,并创建一个主页:

1
2
~] # mkdir /myweb/wordpress
~] # echo "wordpress Page" > /myweb/wordpress/index.html

    最后在真实计算机上使用浏览器打开“https://myweb.wordpress.com/”即可看到如下画面(要修改hosts文件,参考前面的博客):

wKiom1niCzbAEJ2dAAC5cGRCENI861.png-wh_50

    可以看到都是刚才注册的信息,报错是因为这个CA为私有,无法经过它的验证。但是在局域网内就可以使用这个证书来验证信息来源的可靠性了。













本文转自正经的青年51CTO博客,原文链接:http://blog.51cto.com/11142243/1972413 ,如需转载请自行联系原作者



相关文章
|
12天前
|
安全 网络安全 数据安全/隐私保护
内网IP地址实现HTTPS加密访问教程
在内网环境中,为确保数据传输的安全性,绑定SSL证书搭建HTTPS服务器至关重要。本文介绍了内网IP地址的前期准备、申请SSL证书的步骤以及客户端配置方法。具体包括选择合适的CA、注册账号、提交申请、下载证书,并在客户端导入根证书,确保通信数据的安全加密。推荐使用JoySSL提供的技术解决方案,确保内网设备通信安全。
内网IP地址实现HTTPS加密访问教程
|
15天前
|
域名解析 算法 安全
免费申请https加密全攻略
访问JoySSL官网注册账号,申请免费SSL证书。选择证书类型,填写域名信息,生成CSR文件,验证域名所有权。下载并部署证书至服务器,测试HTTPS连接。注意定期续期,确保兼容性和安全性。如有问题,可联系JoySSL客服。
|
2月前
|
安全 网络安全 数据安全/隐私保护
HTTPS中的加密算法
HTTPS中的加密算法
|
1月前
|
安全 网络协议 网络安全
【HTTPS】对称加密和非对称加密
【HTTPS】对称加密和非对称加密
33 0
|
5天前
|
SQL 安全 算法
揭秘网络安全:漏洞、加密与安全意识的三重奏
【10月更文挑战第39天】在数字时代的交响乐中,网络安全扮演着不可或缺的角色。本文旨在通过浅显易懂的语言,揭示网络安全的三大核心要素:网络漏洞、加密技术以及安全意识。我们将探索这些元素如何相互交织,共同维护我们的数字安全。从初学者到资深专家,每个人都能从中获得宝贵的知识和启示。
|
5天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
15 2
|
7天前
|
安全 算法 网络安全
网络安全的盾牌与利剑:漏洞防御与加密技术的双刃舞
【10月更文挑战第37天】在数字世界的海洋里,网络安全是航船的锚,保护我们的数据不受风暴侵袭。本文将深入浅出地探讨网络安全的两大支柱——漏洞防御和加密技术。我们将从网络安全的基本概念出发,逐步深入到漏洞的类型、检测方法以及防御策略。同时,我们也将探索加密技术的原理和应用,如何通过这一技术保护信息的完整性和私密性。最后,我们将讨论提升个人及组织安全意识的重要性,以及如何构建一个安全的网络环境。这不仅是技术人员的战斗,每个人都是自己信息安全的第一道防线。让我们一起扬帆起航,探索网络安全的世界,学习如何成为自己数据的守护者。
|
7天前
|
SQL 安全 网络安全
网络安全的护城河:漏洞防御与加密技术的深度解析
【10月更文挑战第37天】在数字时代的浪潮中,网络安全成为守护个人隐私与企业资产的坚固堡垒。本文将深入探讨网络安全的两大核心要素——安全漏洞和加密技术,以及如何通过提升安全意识来强化这道防线。文章旨在揭示网络攻防战的复杂性,并引导读者构建更为稳固的安全体系。
18 1
|
6天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。
|
5天前
|
存储 安全 网络安全
网络安全与信息安全:漏洞、加密技术与安全意识的交织
【10月更文挑战第39天】在数字化时代,网络安全与信息安全成为保护个人隐私和组织资产的重要屏障。本文将探讨网络安全中的常见漏洞、加密技术的应用以及提升安全意识的重要性。通过具体案例分析,我们将深入了解网络攻击的手段和防御策略,同时提供实用建议,以增强读者对网络安全的认识和防护能力。