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大佬多多指教。
Linux Apache配置https访问的更多相关文章
- lamp之apache配置https访问
配置apache 使用https 注:怕其他人由于路径的原因出问题,首先声明一下,本人apache的安装目录为 : /usr/local/httpd2.4.25,如果不是,请参考进行配置 注: 对于如 ...
- Apache 配置 HTTPS访问
将需要配置的项目移动到另一根目录下,作为https访问位置. 修改bitnami配置文件..\Bitnami\wampstack-5.6.19-0\apache2\conf\bitnami\bitna ...
- linux Apache设置https访问以及加载mod_ssl.so模块以及问题解决
开始之前的话: 1.配置好服务器防火墙的443端口规则: 2.购买好证书文件,我是沃通证书,准备好证书,这里不演示证书的购买和安装. 3.根据服务器类型下载文件,apache一共有4个文件 这里提供沃 ...
- Linux下Apache配置HTTPS功能
Apache配置HTTPS功能 转 https://www.cnblogs.com/liaojiafa/p/6028816.html 一.yum 安装openssl和openssl-devel,ht ...
- Apache配置HTTPS功能
apache配置https 一.yum 安装openssl和openssl-devel,httpd-devel 二.生成证书(也可以从公司的证书颁发机构获取): #建立服务器密钥 openssl ge ...
- Windows上为Apache配置HTTPS
Windows上为Apache配置HTTPS 转 https://www.cnblogs.com/tianzijiaozi/p/7582671.html 1. 安装OpenSSL: Windo ...
- apache配置禁止访问某些文件/目录
我们来看俩段通常对上传目录设置无权限的列子,配置如下: 代码如下: ? 1 2 3 4 5 6 <Directory "/var/www/upload"> <Fi ...
- Apache配置https
Apache配置https 之前一直用的是Tomcat,今天突然接到任务要给Apache配置https证书,因为小程序要用.下面把过程列出来以备后续查看. 1.首先你得有ssl证书,没有的可以去购买, ...
- OkHttp配置HTTPS访问+服务器部署
1 概述 OkHttp配置HTTPS访问,核心为以下三个部分: sslSocketFactory() HostnameVerifier X509TrustManager 第一个是ssl套接字工厂,第二 ...
随机推荐
- Linux中的configure,make,make install到底在做些什么
在Linux下经常要安装部署一些软件包或者工具,拿到安装包之后一看,简单,configure,make, make install即可搞定. 有时候我就在想,这个configure,make ,mak ...
- 使用原生JDBC循环读取文件并持久化到数据库
先上代码: package com.demo.common.service; import java.io.File; import java.io.FileInputStream; import j ...
- Heroku 教程
中文 https://www.jianshu.com/p/7bc34e56fa39 http://www.bjhee.com/flask-heroku.html 官方 Getting Started ...
- Linux裸设备管理详解--
裸设备概述 裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备.裸设备可以绑定一个分区,也可以绑定一个磁盘.字符设备:对字符设备的读写不需要 ...
- Linux内核中的printf实现
1 #ifndef __PRINT_H_ 2 #define __PRINT_H_ 3 4 void print(char* fmt, ...); 5 void printch(char ch); 6 ...
- python版本的简单贪吃蛇
先看看效果,白色的条是蛇(简单勿怪,有研究的同学请告知做的美观点),做了一个笑脸是糖果,背景弄了一个图, 代码也是从其他人那边弄来的,改了一部分直接可以在window上直接运行 代码如下: #codi ...
- rest_framework目录
一 REST API规范 二 rest framework框架的基本使用
- Javascript面向对象编程(一)
什么是面向对象? 它是一种新的编程模式.以往的面向过程是将功能都写在一起,逐行实现.面向对象与其不同,它只关心对象提供的功能,而不在乎细节. 面向对象的特点? 抽象:抓住问题的核心,贯穿始终: 封装: ...
- @Override is not allowed when implementing interface method
使用idea导入maven项目时 会出现如下报错 @Override从jdk1.5开始出现的,是用来标注方法重写:通常方法重写发生在继承父类,重写父类方法,或者实现接口,实现接口方法: @Overri ...
- python-day3集合、文件读写、函数
@集合运算 s.union(t) s | t 返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t) s & t 返回一个新的 set 包含 s 和 t 中 ...