首页 > 其他分享 >部署apache2并实现ssl自动跳转

部署apache2并实现ssl自动跳转

时间:2022-11-15 13:35:00浏览次数:50  
标签:httpd pid apache2 ssl fd conf 跳转 root

部署apache2并实现ssl自动跳转

1. YUM安装

  • 我这里为了快速部署直接使用YUM安装
[root@ip-172-31-5-103 ~]# yum install httpd -y

2. 路径

httpd 解释
/etc/httpd/ 配置文件位置
/var/www/html/ 站点目录位置
/var/log/httpd/ 日志目录位置
/usr/sbin/httpd 命令所在位置

3. 修改配置文件

[root@ip-172-31-5-103 conf]# cat httpd.conf 

#配置文件路径
ServerRoot "/etc/httpd"
#监听端口
Listen 80
#引用modules目录下的配置文件
Include conf.modules.d/*.conf
#指定用户用户组
User apache
Group apache
#管理员邮箱
ServerAdmin root@localhost
#指定服务器域名
ServerName cap.sinnet-cloud.cn:80

#应该是匹配默认url
<Directory />
    AllowOverride none
    Require all granted
</Directory>

#指定站点目录
DocumentRoot "/var/www/sinnet-cloud.cn/html"

#站点目录下权限设置 加了配置ssl认证
<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
#新增
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

</Directory>


<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

#指定是什么为页面
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

===
<Files ".ht*">
    Require all denied
</Files>

#日志路径
ErrorLog "logs/error_log"
#日志错误等级
LogLevel warn

<IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog "logs/access_log" combined
</IfModule>

<IfModule alias_module>
  
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

</IfModule>


<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule mime_module>
   
    TypesConfig /etc/mime.types

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>

AddDefaultCharset UTF-8

<IfModule mime_magic_module>
  
    MIMEMagicFile conf/magic
</IfModule>


EnableSendfile on


<IfModule mod_http2.c>
    Protocols h2 h2c http/1.1
</IfModule>


#这里又引用了虚拟主机的目录
IncludeOptional conf.d/*.conf

IncludeOptional conf/vhost/*.conf

4. 配置虚拟主机

[root@ip-172-31-5-103 conf]# cat vhost.conf 
#匹配端口
<VirtualHost *:80>
#指定站点目录
DocumentRoot "/var/www/sinnet-cloud.cn/html"
#配置域名
ServerName cap.sinnet-cloud.cn
#设置url重写生效
RewriteEngine on
#rewrite的条件是访问的服务器端口不是443端口
RewriteCond %{SERVER_PORT} !^443$
#这是正则表达式,^是开头,$是结束,/?表示有没有/都可以(0或1个),(.*)是任何数量的任意字符
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
整句的意思是讲:启动rewrite模块,将所有访问非443端口的域名请求,url地址内容不变,将http://变成https://。
</VirtualHost>

5. 配置ssl

#安装ssl模块
[root@ip-172-31-5-103 conf]# yum install mod_ssl -y

#安装完这个模块会生成一个ssl.conf文件
[root@ip-172-31-5-103 conf.d]# pwd
/etc/httpd/conf.d
[root@ip-172-31-5-103 conf.d]# ll
total 24
-rw-r--r--. 1 root root 2893 Jun 30 11:02 autoindex.conf
-rw-r--r--. 1 root root  366 Jun 30 11:02 README
-rw-r--r--. 1 root root 9423 Nov 15 04:42 ssl.conf
-rw-r--r--. 1 root root 1252 Jun 30 11:01 userdir.conf

[root@ip-172-31-5-103 conf.d]# cat ssl.conf
#找到这个部分
<VirtualHost *:443>

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA

#指定证书路径	  找到这个路径或者自己创建 把证书放在这个目录下面
SSLCertificateFile /etc/digicert/cloud.cn.crt
SSLCertificateKeyFile /etc/digicert/zhengshu.key

6. 设置站点目录权限并启动服务

#可以自动校验配置文件是否正确
[root@ip-172-31-5-103 conf.d]# httpd -t

#YUM安装的会自动帮你生成一个apache用户
[root@ip-172-31-5-103 conf.d]# chown -R apache.apache /var/www

[root@ip-172-31-5-103 conf.d]# systemctl start httpd
[root@ip-172-31-5-103 conf.d]# systemctl enable httpd

#检查端口他会生成80端口与443端口
[root@ip-172-31-5-103 sinnet-cloud.cn]# ss -lntup | grep 'httpd'
tcp   LISTEN 0      511                                  *:443             *:*    users:(("httpd",pid=5161,fd=6),("httpd",pid=5160,fd=6),("httpd",pid=5154,fd=6),("httpd",pid=5112,fd=6),("httpd",pid=5111,fd=6),("httpd",pid=5110,fd=6),("httpd",pid=5109,fd=6),("httpd",pid=5108,fd=6),("httpd",pid=5106,fd=6))
tcp   LISTEN 0      511                                  *:80              *:*    users:(("httpd",pid=5161,fd=4),("httpd",pid=5160,fd=4),("httpd",pid=5154,fd=4),("httpd",pid=5112,fd=4),("httpd",pid=5111,fd=4),("httpd",pid=5110,fd=4),("httpd",pid=5109,fd=4),("httpd",pid=5108,fd=4),("httpd",pid=5106,fd=4))

#不要忘记做域名劫持哦

标签:httpd,pid,apache2,ssl,fd,conf,跳转,root
From: https://www.cnblogs.com/yidadasre/p/16892115.html

相关文章

  • SVN SSL问题
    1、打开终端2、输入一些svn命令,比如说“svnlshttps://192.168.0.11/svn3、你将得到一个关于服务器证书的文本提示,询问你该怎么做4、输入“p”(并返回),意思是“永久接受......
  • VS Code 使用@所导致的跳转失败问题
    VSCode无法像WebStorm一样使用@,然后Ctrl+鼠标左键跳转到具体的文件中解决办法,在package.json的同级目录创建jsconfig.json。文件内容是{"compilerOptions":{......
  • 创建openssl证书,实现集群外访问k8s api
    创建认证信息首先假设你装好了openssl(没装执行sudoyuminstallopensslopenssl-devel)1、创建一个文件夹叫做openssl-cert/$mkdir-p~/openssl-cert&&cd~/......
  • 使用router跳转页面出现空白页
    一、问题使用router进行页面跳转,路径已经跳转但是出现了空白页,并且显示以下提示  同时在空白页刷新之后能够出现二、解决办法1、出现问题的原因<transition>中的......
  • cfssl命令详解
    CFSSL是CloudFlare开源的一款PKI/TLS工具。CFSSL包含一个命令行工具和一个用于签名,验证并且捆绑TLS证书的HTTPAPI服务。使用Go语言编写。CFSSL包括:一组用于生成......
  • cfssl生成链式自签名证书
    生成大纲总共生成三个证书,一个根证书,一个中间证书签发商,一个服务证书。为方便理解,根证书表示为ca0,中间证书表示为ca1,服务证书表示为server。在本文中,服务证书为生成给harb......
  • 【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & st
    本文介绍使用LinuxVM如何连接到AzureRedis,通过SSL方式(6380)或非SSL方式(6379)问题描述在AzureRedis的官方文档中,介绍了在Windows下,如何通过redis-cli.exe连接Redi......
  • nginx SSL证书配置
    #SSL-INFO-START#SSL证书#公钥+私钥ssl_certificatessl/fullchain.pem;#私钥ssl_certificate_keyssl/privkey.pem;#兼容性ssl_protocolsTLSv1TL......
  • uniapp跳转传参
    varmynavData=JSON.stringify(that.navData);//这里转换成字符串uni.navigateTo({url:'./nav?index='+mynavData......
  • nginx中的location匹配与rewrite重写跳转
    nginx正则表达式^:匹配输入字符串的起始位置$:匹配输入字符串的结束位置*:匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”+:匹配前面的字符一次或......