前言:在apache服务器里,当我们进入的地方需要输入密码或者需要安全性比较高的时候,我们会发现页面自动跳转到https://加密访问,我们在联系搭建服务器过程不需要网上注册之类,但是需要清楚怎样自动跳转https页面,和怎样制作加密证书。
[root@localhost ~]# yum install -y mod_ssl ##安装可生成证书的软件
[root@localhost ~]# systemctl reload httpd ##重新加载注:此时便可以生成默认证书文件
访问之前搭建的服务器:172.25.254.120
这里我们看到的是默认证书文件,我们想要自己新生成证书时,需要安装软件 crypto-utils.x86_64
自定义签名证书
[root@localhost ~]# yum install -y crypto-utils.x86_64
genkey 证书名称 ##生成证书
此处选择no 因为我们是在练习搭建服务器,不需要考虑发送给认证
[root@localhost ~]# genkey www.zpy.com
/usr/bin/keyutil -c makecert -g 1024 -s “CN=www.zpy.com, OU=linux, O=zpy, L=xi’an, ST=Shaanxi, C=CN” -v 1 -a -z /etc/pki/tls/.rand.2911 -o /etc/pki/tls/certs/www.zpy.com.crt -k /etc/pki/tls/private/www.zpy.com.key
cmdstr: makecert
cmd_CreateNewCert
command: makecert
keysize = 1024 bits
subject = CN=www.zpy.com, OU=linux, O=zpy, L=xi’an, ST=Shaanxi, C=CN
valid for 1 months
random seed from /etc/pki/tls/.rand.2911
output will be written to /etc/pki/tls/certs/www.zpy.com.crt ##证书文件
output key written to /etc/pki/tls/private/www.zpy.com.key ##证书钥匙
Generating key. This may take a few moments…
Made a key
Opened tmprequest for writing
/usr/bin/keyutil Copying the cert pointer
Created a certificate
Wrote 882 bytes of encoded data to /etc/pki/tls/private/www.zpy.com.key
Wrote the key to:
/etc/pki/tls/private/www.zpy.com.key
[root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf #在此文件中添加证书和钥匙
SSLCertificateFile /etc/pki/tls/certs/www.zpy.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.zpy.com.key[root@localhost ~]# systemctl restart httpd ##重启服务
测试:访问https://172.25.254.120 查看证书
怎样自动跳转到https://页面呢:
注注注:关于http端口,80端口为正常端口,一般访问都走80端口,443端口为加密传输端口,
[root@localhost ~]# vim /etc/httpd/conf.d/default.conf
<Virtualhost _default_:80>
DocumentRoot "/var/www/html"
CustomLog "logs/default.log" combined
</Virtualhost>
<Virtualhost *:80>
ServerName www.zpy.com
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</Virtualhost>
[root@localhost ~]# systemctl restart httpd
访问www.zpy.com
同理,如果想要在其他默认发布目录里面直接跳到https页面。只要在相应的文件里配置
<Virtualhost *:80> #80端口
ServerName www.zpy.com
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</Virtualhost>
RewriteRule ^(/.*) https:// 1 [redirect=301] 解释
^(\.*)$ #客户主机在地址栏中写入的所有字符,不包含换行符
%{HTTP_HOST} #客户请求主机
$1 #$1的值表示^(\.*)$,也就是地址栏输入的
[redirect=301] ##临时重定向 302 表示永久重定向