zoukankan      html  css  js  c++  java
  • Linux Apache配置https访问

    配置https访问

    该环境是rh254课程配套的一个环境,不过配置方法步骤相同。

    要求:
    使用虚拟主机技术部署两个网站:
    网站1:

    • 绑定域名 www0.example.com
    • 目录在 /srv/www0/www
    • 要求支持https加密访问
    • 所有通过http访问该网站都会自动调转到https

    网站2:

    • 绑定域名 webapp0.example.com
    • 目录在 /srv/webapp0/www
    • 要求支持https加密访问
    • 所有通过http访问该网站都会自动调转到https

    1、安装软件包

    [root@server0 ~]# yum install httpd mod_ssl -y

    2、下载证书

    [root@server0 ~]# wget -O /etc/pki/tls/certs/example-ca.crt http://classroom.example.com/pub/example-ca.crt    --->    根证书
    [root@server0 ~]# wget -O /etc/pki/tls/certs/www0.crt http://classroom.example.com/pub/tls/certs/www0.crt www0    --->    证书
    [root@server0 ~]# wget -O /etc/pki/tls/private/www0.key http://classroom.example.com/pub/tls/private/www0.key www0    --->    私钥
    
    [root@server0 ~]# wget -O /etc/pki/tls/certs/webapp0.crt http://classroom.example.com/pub/tls/certs/webapp0.crt	webapp0    --->    证书
    [root@server0 ~]# wget -O /etc/pki/tls/private/webapp0.key http://classroom.example.com/pub/tls/private/webapp0.key webapp0    --->    私钥

    注意一定不能将文件路径下载错或者记错,否则后期检查很麻烦

    3、建立虚拟主机

    直接拷贝一份模板文件进行编辑

    [root@server0 conf.d]# cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/www0.conf

    多余部分删除,只保留如下部分进行修改
    [root@server0 conf.d]# vim www0.conf 

    <VirtualHost *:443>
    DocumentRoot "/srv/www0/www/"
    ServerName www0.example.com:443
    
    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
    
    SSLCertificateFile /etc/pki/tls/certs/www0.crt	--->www0证书路径
    SSLCertificateKeyFile /etc/pki/tls/private/www0.key --->www0私钥路径
    
    <Directory /srv/www0/www/>
    Require all granted
    </Directory>
    </VirtualHost>
    
    <VirtualHost *:80>	--->要求http跳转,配置这个VirtualHost
    Servername www0.example.com	--->绑定域名
    RewriteEngine On	--->跳转开启
    RewriteRule ^(./*)$ https://%{HTTP_HOST}$1 [redirect=301]	
    </VirtualHost>
    

      

    ^(./*)$ 正则表达式,表示访问的
    %{HTTP_HOST} 表示对方访问时所用的域名
    $1 表示匹配的内容


    将www0.conf拷贝一份,名字为webapp0.conf,然后修改webapp0.conf的内容

    [root@server0 conf.d]# cp {www0,webapp0}.conf
    [root@server0 conf.d]# sed -i 's/www0/webapp0/g' webapp0.conf
    

    4、创建主页目录并修改权限

    [root@server0 ~]# mkdir -p /srv/{www0,webapp0}/www
    [root@server0 ~]# echo "I'm www0" >> /srv/www0/www/index.html
    [root@server0 ~]# echo "I'm webapp0" >> /srv/webapp0/www/index.html
    [root@server0 ~]# chown apache:apache -R /srv/*

    5、修改selinux安全上下文

    [root@server0 ~]# semanage fcontext -a -t 'httpd_sys_content_t' '/srv(/.*)?'
    [root@server0 ~]# restorecon -Rv /srv/
    [root@server0 ~]# ll -Zd /srv/www0/
    drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /srv/www0/

    6、更改防火墙配置

    [root@server0 ~]# firewall-cmd --permanent --add-service=http
    [root@server0 ~]# firewall-cmd --permanent --add-service=https
    [root@server0 ~]# firewall-cmd --reload
    [root@server0 ~]# firewall-cmd --list-all
    public (default, active)
    interfaces: eth0
    sources: 
    services: dhcpv6-client http https ssh
    ports: 
    masquerade: no
    forward-ports: 
    icmp-blocks: 
    rich rules:

    7、启动httpd服务并设定开机自启动

    [root@server0 ~]# systemctl start httpd
    [root@server0 ~]# systemctl enable httpd

    8、验证
    desktop0在导入证书之后使用浏览器访问

    http://www0.example.com 会被跳转到 https://www0.example.com 页面显示I'm www0
    http://webapp0.example.com 会被跳转到 https://webapp0.example.com 页面显示I'm webapp0
    curl 临时访问
    curl -k https://webapp0.example.com 
    -k 允许在没有证书的情况下连接到SSL站点

     这里使用curl临时访问以下,需要导入证书,本人学艺不精,后期更新,谢谢支持。

    有什么疑问请留言或者私信我,看到第一时间回复。

    本人linux菜鸟一个,欢迎linux大佬多多指教。

  • 相关阅读:
    [译] 关于CSS中的float和position
    【规范】前端编码规范——注释规范
    【规范】前端编码规范——jquery 规范
    【规范】前端编码规范——javascript 规范
    【规范】javascript 变量命名规则
    如何使用TestFlight进行Beta测试
    i o s 崩溃日志分析
    CocoaPods安装和使用教程
    iOS 程序切换后台
    iOS 百度地图获取当前地理位置
  • 原文地址:https://www.cnblogs.com/despotic/p/10754074.html
Copyright © 2011-2022 走看看