apache2的目录文件详解
Apache在启动的时候自动读取文件配置信息 apache2引用到以下文件;
#包含动态模块的配置 include /etc/apache2/mods-enabled/*.load include /etc/apache2/mods-enabled/*.conf
#包含用户自己的配置
include /etc/apache2/httpd.conf
#包含端口监听的配置
include /etc/apache2/ports.conf
#包含一般性的配置语句片段
include /etc/apache2/conf.d/
#包含虚拟主机的配置指令
include /etc/apache2/sites-available
包含两个文件 000-default.conf 和default-ssl.conf文件
000-default.conf是使用http协议网站的默认网站配置文件
default-ss.conf是https协议网站才使用的默认网站配置文件。
#软连接指向
include /etc/apache2/sites-enables/
Apache2绑定域名
1. 打开/etc/hosts文件
添加 127.0.0.1 test.com
2.配置/etc/apache2/sites-availables/000-default.conf
#如果包含了很多子域名的话 添加 ServerName test.com ServerAlias *.testclom #如果只绑定一个就直接写上www ServerName www.test.com
Apache自签证书
一.启用mod_ssl
使用ssl证书之前首先得启用mod_ssl,提供ssl加密的支持的apache模块
#开启ssl模块,提供对ssl加密的支持的apache模块 sudo a2enmod ssl #启动重定向
sudo a2enmod rewrite
二.创建ssl证书
1.进入/etc/apache2/ports.conf
配置 Listen 80 Listen 443
apache使用加密后生成新的ssl证书
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-cert.key -out /etc/ssl/certs/apache-cert.crt
#openssl 创建和管理openssl证书
#req -x509 指定我们要用x.509证书签名请求(CSR)管理 X.509是ssl和TLS用于密钥和证书管理的共用密钥基础结构标准
#-nodes 告诉openssl跳过使用密码短语保护我们的证书选项 因为不跳过的话 apache服务的读取文件可以在没有用户的情况下读取文件
#-days 365 这是时间365天过期
#-newkey rsa:2048 指定生成一个新证书和一个新密钥
#-keyout 告诉openssl在何处放置我们生成的私钥文件
#-out: 这告诉openssl在哪里放置我们在创建的证书
会有要创建的提示
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:Example
Locality Name (eg, city) [Default City]:Example
Organization Name (eg, company) [Default Company Ltd]:Example Inc
Organizational Unit Name (eg, section) []:Example Dept
Common Name (eg, your name or your server's hostname) []:your_domain_or_ip
Email Address []:[email protected]
三.生成了apache配置为了使用ssl
1.有一个自签名证书和密钥,更新apache配置使用他们
cd /etc/apache2/sites-available
vim /etc/apache2/sites-available/default-ssl.conf 使用
#删除所有的注释的猴,虚拟主机配置下的文件如下所示 <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> </IfModule>
修改http主机文件重定向到HTTPS
2.将伪加密的虚拟主机文件以所有流量重定向到ssl加密
sudo vim /etc/apache2/sites-availables/000-default.conf
<\VirtualHost *:80><\VirtualHost> 标签内随便一个地方加入以下三行 RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
3. ufw放行apache端口
ufw allow 'Apache full'
4.重启apache2服务激活
#重启apache以激活该模块 sudo systemctl restart apache2
标签:https,etc,证书,apache2,ssl,ubunut,conf,apache From: https://www.cnblogs.com/lisenMiller/p/17277890.html