ubuntu 22.04通过apt-get安装的apache2将http改造为https的方法

目录

一、安装apache2

二、启动apache2服务

三、访问http网页

四、改造https

(一)查看apache2是否安装了ssl模块

(二)安装apache2-dev

(三)配置SSL访问

1. 生成私有证书

2. 新增ssl配置文件

3. 重启apache2服务,使用https访问网站


一、安装apache2

sudo apt-get install apache2

二、启动apache2服务

sudo systemctl start apache2

三、访问http网页

四、改造https

(一)查看apache2是否安装了ssl模块

sudo apache2ctl -M

        命令查询到现有模块如下,未找到ssl相关模块

(二)安装apache2-dev

        apache2-dev模块包含了ssl模块,安装后先载入ssl模块,再重启apache2服务:

sudo a2enmod ssl

sudo systemctl restart apache2

        已经成功加载ssl_module模块

(三)配置SSL访问

        由于是测试环境,先自己生成证书,如生产环境,可导入企业证书。

1. 生成私有证书

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.test.com"

2. 新增ssl配置文件

        将默认default-ssl.conf配置文件拷贝到apache2的扩展目录下,

sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/

cd /etc/apache2/sites-enabled/

sudo vim default-ssl.conf

        将配置中的证书文件改成自己的,以下是上面生成的私有证书:

SSLCertificateFile      /etc/ssl/certs/apache-selfsigned.crt

SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

                如果用自己的域名,配置文件需要加上ServerName

3. 重启apache2服务,使用https访问网站

sudo systemctl restart apache2

        生产站点的目录权限问题请自行处理。

### 如何在Ubuntu上配置Apache服务器启用HTTPS #### 安装必要的软件包 为了使 Apache 支持 HTTPS 协议,在 Ubuntu 上除了安装 Apache 本身之外,还需要确保已安装 `openssl` 和 `mod_ssl` 模块。通过下面的命令可以完成这些操作: ```bash sudo apt update && sudo apt install apache2 openssl libapache2-ssl -y ``` 这一步骤会更新本地仓库缓存并安装所需的组件[^1]。 #### 创建自签名证书(可选) 如果打算使用正式的SSL/TLS证书,则跳过此部分;如果是测试环境或内部网络应用,可以通过 OpenSSL 工具创建一个临时性的自签名证书文件: ```bash sudo mkdir /etc/ssl/private/ sudo chmod 700 /etc/ssl/private/ sudo openssl req -keyout /etc/ssl/private/apache-selfsigned.key \ -out /etc/ssl/certs/apache-selfsigned.crt ``` 上述命令将会引导用户输入一些关于组织的信息来生成一对密钥和对应的 X.509 证书[^3]。 #### 修改默认站点配置以支持 SSL 编辑 `/etc/apache2/sites-available/default-ssl.conf` 文件,确保其中包含了正确的路径指向之前创建好的私钥与公钥(.crt)文件的位置,并设置好 ServerName 参数: ```nginx <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key </VirtualHost> </IfModule> ``` 保存更改后退出编辑器[^4]。 #### 启用相关模块和服务 为了让 Apache 能够识别新添加的内容以及处理加密连接请求,需激活几个重要的功能模块: ```bash sudo a2enmod ssl sudo a2ensite default-ssl sudo systemctl restart apache2 ``` 最后重启 Apache 来加载新的配置项[^2]。 #### 配置防火墙允许 HTTPS 流量 假如系统启用了 UFW (Uncomplicated Firewall),那么应该开放第443号TCP端口以便外部设备能够访问到安全版本的服务: ```bash sudo ufw allow 'OpenSSH' sudo ufw allow 'Apache Full' sudo ufw reload ``` 以上就是整个过程的大致描述,现在应当可以在浏览器地址栏里键入 https://your_server_ip 或者域名来进行验证了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

見贤思齊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值