我是靠谱客的博主 傻傻小甜瓜,最近开发中收集的这篇文章主要介绍配置Apache支持HTTPS,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、演示环境:

192.168.1.145:CentOS 6.9 x86_64,Apache服务器

192.168.1.146:CentOS 7.4 x86_64,私建的CA服务器

备注:ApacheCA可以位于同一台服务器


2、192.168.1.145安装httpd服务,并启动:

# yum -y install httpd  -->  版本:httpd-2.2.15

# cd /etc/httpd/conf

# cp httpd.conf httpd.conf.bak

# vim httpd.conf  -->  ServerName localhost:80

# service httpd start

# ss -tnl | grep :80


3、创建虚拟主机页面存放目录及测试页:

# mkdir -pv /web/vhosts/htdocs

# cd /web/vhosts/htdocs

# vim index.html  -->  <h3>Index Page</h3>

# vim test.html  -->  <h3>Test Page</h3>


4、创建基于主机名的虚拟主机:

# vim /etc/httpd/conf/httpd.conf,末尾新增如下代码:

wkiol1njbxqx4zewaab14lak6r8906.jpg

# service httpd reload


5、以管理员权限运行notepad,修改本地Windows 10C:WindowsSystem32driversetchosts文件,末尾新增代码:192.168.1.145 web.vhosts.com,保存修改后访问测试页

wkiom1njcgbqczf8aaa8qs7qnhi251.jpg

wkiom1njcgahxzwzaabia7ciyj0745.jpg

wkiol1njb1dwezcraaasla8kmg0931.jpg


6、192.168.1.146创建私有CA

(1)安装相关软件包:# yum -y install openssl openssh-clients

备注:OpenSSL的配置文件是/etc/pki/tls/openssl.cnf,此处无需修改,使用默认配置即可

(2)创建保存证书信息的数据库文件:# touch /etc/pki/CA/index.txt

(3)创建保存证书序列号的文件:# echo 01 > /etc/pki/CA/serial

(4)生成私钥cakey.pem# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

wkiol1njcjji3ndxaabkght0ahc572.jpg

备注:genrsa子命令常用选项

  • genrsa:用于生成RSA密钥对的OpenSSL子命令

  • -out cakey.pem:私钥保存位置

  • 2048:密钥长度,也可以使用10244096

更多genrsa子命令选项可查看:# man genrsa

(5)生成CA证书cacert.pem

# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem

wkiol1njcocdxphoaae8r6iqnqy027.jpg

其中ca.keyso.com为证书颁发者

备注:req子命令常用选项

  • req:用于证书签署请求和证书生成的OpenSSL子命令

  • -new:生成新证书签署请求

  • -x509:专用于CA生成自签证书

  • -key cakey.pem:生成CA证书请求时用到的私钥

  • -days 7300:证书的有效期限为20

  • -out cacert.pem:证书的保存路径

更多req子命令选项可查看:# man req


7、192.168.1.145生成证书签署请求文件并发送至192.168.1.146

(1)安装相关软件包:# yum -y install openssh-clients

(2)创建用于存放密钥的目录:# mkdir -pv /etc/httpd/ssl

(3)生成私钥web-vhosts-com.key# (umask 077; openssl genrsa -out /etc/httpd/ssl/web-vhosts-com.key 2048)

wkiol1njctutfjrmaabcyc-oums808.jpg(4)生成证书签署请求文件web-vhosts-com.csr

# openssl req -new -key /etc/httpd/ssl/web-vhosts-com.key -days 7300 -out /etc/httpd/ssl/web-vhosts-com.csr

wkiol1njcvqj0svhaagbpwe7f6i332.jpg其中web.vhosts.com为证书颁发的对象

(5)将证书签署请求文件web-vhosts-com.csr发送至192.168.1.146

# scp /etc/httpd/ssl/web-vhosts-com.csr root@192.168.1.146:/etc/pki/CA/certs

8、192.168.1.146签署证书并发还给192.168.1.145

(1)签署证书:

# openssl ca -in /etc/pki/CA/certs/web-vhosts-com.csr -days 7300 -out /etc/pki/CA/certs/web-vhosts-com.crt

wkiol1njc3fj7fzxaag31xwyaxw568.jpg备注:ca子命令常用选项

  • ca:用于签署证书请求的OpenSSL子命令

  • -in web-vhosts-com.csr:证书签署请求文件路径

  • -days 7300:证书的有效期限为20

  • -out web-vhosts-com.crt:证书的保存路径

更多ca子命令选项可查看:# man ca

wkiol1njc6hw7eehaab1gurmx9o621.jpg(2)将证书web-vhosts-com.crt发还给192.168.1.145

# scp /etc/pki/CA/certs/web-vhosts-com.crt root@192.168.1.145:/etc/httpd/ssl

(3)192.168.1.145查看证书信息:

wkiom1njdq3coddkaabqhztrc30329.jpg

# openssl x509 -in /etc/httpd/ssl/web-vhosts-com.crt -noout -text       //显示的信息多

# openssl x509 -in /etc/httpd/ssl/web-vhosts-com.crt -noout -subject

# openssl x509 -in /etc/httpd/ssl/web-vhosts-com.crt -noout -serial

wkiol1njdbjyypoyaabyhzlxsqi663.jpg

备注:

  • 使用私钥web-vhosts-com.key和证书web-vhosts-com.crt生成微软专用证书web-vhosts-com.crt.pfx

# cd /etc/httpd/ssl

# openssl pkcs12 -export -out web-vhosts-com.pfx -inkey web-vhosts-com.key -clcerts -in web-vhosts-com.crt

wkiom1njdwgy1tkiaaczihmiw3m288.jpg

  • 使用微软专用证书web-vhosts-com.pfx生成私钥web-vhosts-com.key和证书web-vhosts-com.crt

# openssl pkcs12 -in web-vhosts-com.pfx -nodes -out web-vhosts-com.pem

wkiom1njdzrivzviaabfdutcow8385.jpg

# openssl rsa -in web-vhosts-com.pem -out web-vhosts-com.key

wkiol1njdjkyf9yxaaanjtfa450526.jpg

# openssl x509 -in web-vhosts-com.pem -out web-vhosts-com.crt


9、192.168.1.145配置Apache支持SSL

(1)安装SSL模块:# yum -y install mod_ssl

备注:yum方式安装的Apache默认没有装载SSL模块,即没有/etc/httpd/conf.d/ssl.conf配置文件,也没有/usr/lib64/httpd/modules/mod_ssl.so模块文件

wkiol1njdojs0jjxaaacgz2djxy213.jpg

(2)配置HTTPS虚拟主机并访问测试页:

# vim /etc/httpd/conf/httpd.conf,末尾新增如下代码:

wkiom1njd7va-hjoaacqeertnqi112.jpg

备注:上述内容也可在配置文件/etc/httpd/conf.d/ssl.conf中直接修改

# httpd -t

# service httpd reload

# ss -tnl | grep :443

wkiol1njduxrrbzqaagcoletbfc111.jpg


wkiom1njd_ubup77aailkfh78wi634.jpg


wkiom1njd_zrxcbqaabrepyuv4e310.jpg

wkiol1njdubytkataabafkr1lxk369.jpg

wkiol1njdubqippuaabswbce0uq404.jpg

(3)将所有HTTP请求(80端口)重定向到HTTPS443端口),并访问测试页:

# vim /etc/httpd/conf/httpd.conf,在<VirtualHost*:80></VirtualHost>标签中新增如下代码:

wkiol1njdfpz5-plaadbmqwpzaw323.jpg

# httpd -t

# service httpd reload

直接访问web.vhosts.com,会自动跳转至https://web.vhosts.com

wkiol1njdhft85ohaabrepyuv4e933.jpg

直接访问web.vhosts.com/test.html,会自动跳转至https://web.vhosts.com/test.html

wkiom1njennxjbycaabafkr1lxk077.jpg

/etc/httpd/conf/httpd.conf最终末尾一共新增了如下代码:

wkiom1njepey5fhaaafzdcih_k8089.jpg


10、360安全浏览器中安装证书:

(1)360安全浏览器中访问效果:

wkiom1njeswgcbvfaaborosdsjm231.jpg

(2)192.168.1.146中的证书/etc/pki/CA/cacert.pem保存至本地Windows10桌面,并重命名为cacert.crt

(3)360安全浏览器中安装证书:设置 --> 安全设置 --> 管理HTTPS/SSL证书

wkiom1njevbtimamaaed2ebqa9m204.jpg


wkiol1njdqcw16wgaadr3mwgu7i722.jpg


wkiom1njevawfz-eaad8hdeadi0046.jpg


wkiol1njdqgr1zalaadwo1dtzqo055.jpg


wkiom1njeveymxutaads0yshhd0461.jpg


wkiol1njdqgjoketaaeop7yx4qk494.jpg


wkiom1njeveczgg4aaaikraqrj8132.jpg


wkiol1njdqlcqnm8aaj60echdx0418.jpg

(4)重新打开360安全浏览器,再次访问测试页:

wkiom1njee7hevsuaabhcazuzvg808.jpg

wkiol1njdzjsm0-zaabse_vffn0464.jpg

已没有“证书风险”的提示

(5)查看证书信息:

wkiol1njd6kjsytmaadxiuwnboe760.jpg


wkiom1njelnwmtocaaeakgeocas075.jpg

备注:如果是生产环境中需要使用证书,建议从正规的证书颁发机构处申请。





      本文转自Marion0728  51CTO博客,原文链接http://blog.51cto.com/qiuyue/1972572
:,如需转载请自行联系原作者




最后

以上就是傻傻小甜瓜为你收集整理的配置Apache支持HTTPS的全部内容,希望文章能够帮你解决配置Apache支持HTTPS所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部