Apache配置ssl证书-实现https访问

文章目录

  • 一、准备工作
    • [1.1 安装Apache服务器](#1.1 安装Apache服务器)
    • [1.2 Apache服务器上已经开启了443端口](#1.2 Apache服务器上已经开启了443端口)
    • [1.3 Apache服务器上已安装了mod_ssl.so模块](#1.3 Apache服务器上已安装了mod_ssl.so模块)
    • [1.4 获取SSL证书](#1.4 获取SSL证书)
  • 二、配置apache
    • [2.1 配置apache文件](#2.1 配置apache文件)
    • [2.2 生效配置文件](#2.2 生效配置文件)

一、准备工作

1.1 安装Apache服务器

复制代码
yum install httpd -y

1.2 Apache服务器上已经开启了443端口

443为HTTPS服务的默认端口

1.3 Apache服务器上已安装了mod_ssl.so模块

启用SSL功能,安装mod_ssl.so模块

复制代码
yum install -y mod_ssl

1.4 获取SSL证书

使用Certbot签发和续费泛域名SSL证书:https://blog.csdn.net/cljdsc/article/details/133461361

二、配置apache

2.1 配置apache文件

vhost的域名配置文件.conf,在目录:/etc/httpd/conf.d

  • HTTP配置:

    Listen 80

    指定域名

    ServerName www.example.com

    指定文档根目录

    DocumentRoot /var/www/html

    是否启用访问日志

    CustomLog /var/log/httpd/access.log combined

    指定错误日志路径

    ErrorLog /var/log/httpd/error.log

    配置虚拟主机

    <VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html/project

    复制代码
      # 访问权限
      <Directory /var/www/html/project>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          allow from all
          Require all granted
      </Directory>
    
      # 使用PHP解析器处理.php文件
      <FilesMatch \.php$>
          SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
      </FilesMatch>
    
      # 定义PHP脚本的目录索引
      DirectoryIndex index.php index.html
      
      # 自定义错误页面
      ErrorDocument 404 /error_404.html
      
      # 设置HTTP头信息
      Header set X-Content-Type-Options "nosniff"
      Header set X-XSS-Protection "1; mode=block"
    </VirtualHost>
  • HTTPS配置:

    <VirtualHost *:443>
    DocumentRoot /var/www/html/project
    ServerName www.cpayfinance.com
    ServerAlias www.cpayfinance.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/cpayfinance.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/cpayfinance.com//privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/cpayfinance.com//chain.pem

    访问权限

    复制代码
      <Directory /var/www/html/project>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          allow from all
          Require all granted
      </Directory>
    
      # 使用PHP解析器处理.php文件
      <FilesMatch \.php$>
          SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
      </FilesMatch>
    
      # 定义PHP脚本的目录索引
      DirectoryIndex index.php index.html
    
      # 自定义错误页面
      ErrorDocument 404 /error_404.html
    
      # 设置HTTP头信息
      Header set X-Content-Type-Options "nosniff"
      Header set X-XSS-Protection "1; mode=block"
    </VirtualHost>
  • HTTP & HTTPS 配置

    Listen 80

    指定域名

    ServerName www.cpayfinance.com

    指定文档根目录

    DocumentRoot /var/www/html

    是否启用访问日志

    CustomLog /var/log/httpd/access.log combined

    指定错误日志路径

    ErrorLog /var/log/httpd/error.log

    配置虚拟主机

    <VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html/project

    复制代码
      # 访问权限
      <Directory /var/www/html/project>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          allow from all
          Require all granted
      </Directory>
    
      # 使用PHP解析器处理.php文件
      <FilesMatch \.php$>
          SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
      </FilesMatch>
    
      # 定义PHP脚本的目录索引
      DirectoryIndex index.php index.html
      
      # 自定义错误页面
      ErrorDocument 404 /error_404.html
      
      # 设置HTTP头信息
      Header set X-Content-Type-Options "nosniff"
      Header set X-XSS-Protection "1; mode=block"
    </VirtualHost>

    <VirtualHost *:443>
    DocumentRoot /var/www/html/project
    ServerName www.cpayfinance.com
    ServerAlias www.cpayfinance.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/cpayfinance.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/cpayfinance.com//privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/cpayfinance.com//chain.pem

    访问权限

    复制代码
      <Directory /var/www/html/project>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          allow from all
          Require all granted
      </Directory>
    
      # 使用PHP解析器处理.php文件
      <FilesMatch \.php$>
          SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
      </FilesMatch>
    
      # 定义PHP脚本的目录索引
      DirectoryIndex index.php index.html
    
      # 自定义错误页面
      ErrorDocument 404 /error_404.html
    
      # 设置HTTP头信息
      Header set X-Content-Type-Options "nosniff"
      Header set X-XSS-Protection "1; mode=block"
    </VirtualHost>

2.2 生效配置文件

  • 查看配置文件是否正常

    apachectl -t

    Syntax OK

  • 重启apache配置

    systemctl restart httpd

相关推荐
conkl2 小时前
Apache网页优化实战指南 - 让网站加载速度提升
linux·运维·服务器·开发语言·阿里云·apache
Faith_xzc2 小时前
Apache Doris FE 问题排查与故障分析全景指南
大数据·数据仓库·apache·doris
夜影风13 小时前
Linux系统中自签名HTTPS证书
linux·运维·https
网硕互联的小客服1 天前
宝塔面板如何关闭https强制跳转http/https共存?
运维·服务器·网络·网络协议·http·https
Hello.Reader1 天前
NGINX SSL/TLS 预读模块解密 ngx_stream_ssl_preread_module 实战指南
网络·nginx·ssl
00后程序员张1 天前
实战解析:如何用克魔(KeyMob)等工具构建iOS应用稳定性与数据可观测体系
websocket·网络协议·tcp/ip·http·网络安全·https·udp
Bruce_Liuxiaowei1 天前
某靶场CTF题目:利用Apache APISIX默认Token漏洞(CVE-2020-13945)获取Flag
网络安全·apache·ctf
cui_win1 天前
【报错解决】Java 连接https报错「javax.net.ssl.SSLHandshakeException」怎么破?看这篇!
java·https·.net
2501_915921431 天前
iOS性能调试完整流程实录:工具组合下的问题定位与修复实践(含keymob)
websocket·网络协议·tcp/ip·http·网络安全·https·udp
pengles2 天前
使用Apache POI操作Word文档:从入门到实战
word·apache