配置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大佬多多指教。

Linux Apache配置https访问的更多相关文章

  1. lamp之apache配置https访问

    配置apache 使用https 注:怕其他人由于路径的原因出问题,首先声明一下,本人apache的安装目录为 : /usr/local/httpd2.4.25,如果不是,请参考进行配置 注: 对于如 ...

  2. Apache 配置 HTTPS访问

    将需要配置的项目移动到另一根目录下,作为https访问位置. 修改bitnami配置文件..\Bitnami\wampstack-5.6.19-0\apache2\conf\bitnami\bitna ...

  3. linux Apache设置https访问以及加载mod_ssl.so模块以及问题解决

    开始之前的话: 1.配置好服务器防火墙的443端口规则: 2.购买好证书文件,我是沃通证书,准备好证书,这里不演示证书的购买和安装. 3.根据服务器类型下载文件,apache一共有4个文件 这里提供沃 ...

  4. Linux下Apache配置HTTPS功能

    Apache配置HTTPS功能  转 https://www.cnblogs.com/liaojiafa/p/6028816.html 一.yum 安装openssl和openssl-devel,ht ...

  5. Apache配置HTTPS功能

    apache配置https 一.yum 安装openssl和openssl-devel,httpd-devel 二.生成证书(也可以从公司的证书颁发机构获取): #建立服务器密钥 openssl ge ...

  6. Windows上为Apache配置HTTPS

    Windows上为Apache配置HTTPS   转 https://www.cnblogs.com/tianzijiaozi/p/7582671.html   1. 安装OpenSSL: Windo ...

  7. apache配置禁止访问某些文件/目录

    我们来看俩段通常对上传目录设置无权限的列子,配置如下: 代码如下: ? 1 2 3 4 5 6 <Directory "/var/www/upload"> <Fi ...

  8. Apache配置https

    Apache配置https 之前一直用的是Tomcat,今天突然接到任务要给Apache配置https证书,因为小程序要用.下面把过程列出来以备后续查看. 1.首先你得有ssl证书,没有的可以去购买, ...

  9. OkHttp配置HTTPS访问+服务器部署

    1 概述 OkHttp配置HTTPS访问,核心为以下三个部分: sslSocketFactory() HostnameVerifier X509TrustManager 第一个是ssl套接字工厂,第二 ...

随机推荐

  1. Linux中的configure,make,make install到底在做些什么

    在Linux下经常要安装部署一些软件包或者工具,拿到安装包之后一看,简单,configure,make, make install即可搞定. 有时候我就在想,这个configure,make ,mak ...

  2. 使用原生JDBC循环读取文件并持久化到数据库

    先上代码: package com.demo.common.service; import java.io.File; import java.io.FileInputStream; import j ...

  3. Heroku 教程

    中文 https://www.jianshu.com/p/7bc34e56fa39 http://www.bjhee.com/flask-heroku.html 官方 Getting Started ...

  4. Linux裸设备管理详解--

    裸设备概述 裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备.裸设备可以绑定一个分区,也可以绑定一个磁盘.字符设备:对字符设备的读写不需要 ...

  5. Linux内核中的printf实现

    1 #ifndef __PRINT_H_ 2 #define __PRINT_H_ 3 4 void print(char* fmt, ...); 5 void printch(char ch); 6 ...

  6. python版本的简单贪吃蛇

    先看看效果,白色的条是蛇(简单勿怪,有研究的同学请告知做的美观点),做了一个笑脸是糖果,背景弄了一个图, 代码也是从其他人那边弄来的,改了一部分直接可以在window上直接运行 代码如下: #codi ...

  7. rest_framework目录

    一  REST API规范 二  rest framework框架的基本使用

  8. Javascript面向对象编程(一)

    什么是面向对象? 它是一种新的编程模式.以往的面向过程是将功能都写在一起,逐行实现.面向对象与其不同,它只关心对象提供的功能,而不在乎细节. 面向对象的特点? 抽象:抓住问题的核心,贯穿始终: 封装: ...

  9. @Override is not allowed when implementing interface method

    使用idea导入maven项目时 会出现如下报错 @Override从jdk1.5开始出现的,是用来标注方法重写:通常方法重写发生在继承父类,重写父类方法,或者实现接口,实现接口方法: @Overri ...

  10. python-day3集合、文件读写、函数

    @集合运算 s.union(t) s | t 返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t) s & t 返回一个新的 set 包含 s 和 t 中 ...