一直以来都是对HTTPS加密一知半解,想找个时间,格物致知.
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的.
CA(Certificate Authority)是证书的签发机构,它是负责管理和签发证书的第三方机构,是受到广泛信任的机构。一般在我们的电脑中,浏览器里,或者手机里都会内置一批这样的受信机构的根证书。
公钥密码体制:
公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下:
加密:通过加密算法和公钥对内容(或者说明文)进行加密,得到密文。加密过程需要用到公钥。
解密:通过解密算法和私钥对密文进行解密,得到明文。解密过程需要用到解密算法和私钥。注意,由公钥加密的内容,只能由私钥进行解密,也就是说,由公钥加密的内容,如果不知道私钥,是无法解密的。
公钥密码体制的公钥和算法都是公开的(这是为什么叫公钥密码体制的原因),私钥是保密的。一般来说都是,公钥加密,私钥解密.在实际的使用中,有需要的人会生成一对公钥和私钥,把公钥发布出去给别人使用,自己保留私钥.
查了查资料.
CSR文件用来申请证书(提供给证书供应商)
KEY文件是私钥,用来配置ssl(放到服务器)
CERT是证书供应商颁发的证书(放到服务器)
- .key文件:密钥文件,SSL证书的私钥就包含在其中
- .crt文件:证书文件,证书打开会就会看到申请的域名
- .crs文件或者.cer:证书请求
在Centos6.5来说,我们已经安装好了apache.配置如下
在 /var/www/html 编写访问内容,文件名为index.html
在 /etc/httpd/conf.d/在 编写文件vhost.conf
其中还要放行防火墙的80端口,重启iptables,httpd服务,然后就能访问到网页.
安装,openssl,mod_ssl
利用 OpenSSL 来产生一张自我签署的凭证。
制作私钥
制作csr
制作crt
复制文件到正确位置
更改/etc/httpd/conf.d中 mod文件的后缀名.
复制钥匙 cp ca.crt /etc/pki/tls/certs cp ca.key /etc/pki/tls/private/ca.key cp ca.csr /etc/pki/tls/private/ca.csr
不知道大家有没有想过,为什么把钥匙放在这些目录下,放别的地方不可以嘛?
好,我们来找找为什么
下载yum -y install mod_ssl
然后再/etc/httpd/conf.d里面有一个配置文件
我们进去看看,我们把localhost.crt,改成我们做的ca.crt,同理,把localhost.key,改成ca.key. 注意文件路径
编辑
[root@orz conf.d]# cat vhost.conf
listen 443
<virtualhost *:443>
documentroot /var/www/html
servername 127.0.0.1
sslengine on
sslcertificatefile /etc/pki/tls/certs
sslcertificatekeyfile /etc/pki/tls/private/ca.key
</virtualhost>
放防火墙,重启防火墙,http服务.
然后访问,会有验证界面,点一下,就能看到已下网页了. 步骤全是一样的,在Centos6.5上没报错但访问不了,然后用redhat7.0就能访问.还在研究到底是问题
最后提供Centos6.5搭建https的官方实验手册供大家参考学习
https://wiki.centos.org/zh/HowTos/Https
=============================================================================
写得有点乱,还是鼓捣研究了一会 Centos6.5前面步骤都是一样的
配置文件得改一改
vim /etc/httpd/conf.d/vhost.conf
<VirtualHost _default_:443>
DocumentRoot "/home/store/webroot"
Servername domain
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLCertificateFile /etc/httpd/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
</VirtualHost>
重启服务
(网上找了资料,could not determine the server's .... 这个错误 说是改ssl.conf 里面的
改了之后 去掉#,加端口,并没有什么用)
先不管那边多,放行443端口,重启httpd服务.
打开firefox 输入https://127.0.0.1