惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
AI
AI
博客园 - 三生石上(FineUI控件)
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网
NISL@THU
NISL@THU
S
Schneier on Security
T
Threatpost
T
Tenable Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
IT之家
IT之家
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
C
Cybersecurity and Infrastructure Security Agency CISA
P
Privacy & Cybersecurity Law Blog
I
Intezer
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
T
Threat Research - Cisco Blogs
SecWiki News
SecWiki News
AWS News Blog
AWS News Blog
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
V
V2EX
Recorded Future
Recorded Future
Microsoft Security Blog
Microsoft Security Blog
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research
Project Zero
Project Zero
PCI Perspectives
PCI Perspectives
G
GRAHAM CLULEY
Help Net Security
Help Net Security
Cloudbric
Cloudbric
Recent Announcements
Recent Announcements
V
Visual Studio Blog
Hacker News: Ask HN
Hacker News: Ask HN
N
News and Events Feed by Topic
C
CERT Recently Published Vulnerability Notes
The Cloudflare Blog
Forbes - Security
Forbes - Security
C
Cisco Blogs
O
OpenAI News
www.infosecurity-magazine.com
www.infosecurity-magazine.com

泠泫凝的异次元空间

通过串口安装Linux | 泠泫凝的异次元空间 curl自编译 | 泠泫凝的异次元空间 Minecraft 认证服务器代理 | 泠泫凝的异次元空间 飞塔分流配置实战 | 泠泫凝的异次元空间 Windows 安全启动证书检查 | 泠泫凝的异次元空间 Lxn-OneDriveCLI | 泠泫凝的异次元空间 华三交换机配置 ERPS 环网 | 泠泫凝的异次元空间 PVE 配置 VLAN 感知 | 泠泫凝的异次元空间 MT7922 无线网卡安装 | 泠泫凝的异次元空间 无显示输出 Linux 主机配置桌面显示 | 泠泫凝的异次元空间 Wireguard 部署 SOP 手册(自用) | 泠泫凝的异次元空间 Zabbix 7.4 通过钉钉发送告警提醒 | 泠泫凝的异次元空间 Debian with xfce 通过 VNC 共享屏幕 华三S6860 IRF堆叠 | 泠泫凝的异次元空间 iPad 应用侧载 | 泠泫凝的异次元空间 Smart DNS 分区解析 | 泠泫凝的异次元空间 建立 NFS 服务器并挂载到客户端 | 泠泫凝的异次元空间 将 Android 以 MTP 方式连接至 Debian PVE 虚拟机迁移至 vCenter | 泠泫凝的异次元空间 vCenter 虚拟机迁移至 PVE | 泠泫凝的异次元空间 PVE迁移时提示密钥验证失败 | 泠泫凝的异次元空间 修改Windows设备设置区域 | 泠泫凝的异次元空间 恢复 SecureCRT 7.x 保存的密码 | 泠泫凝的异次元空间 PVE 超融合下电与上电流程 | 泠泫凝的异次元空间 记一次Zabbix异常处理 | 泠泫凝的异次元空间 苹果设备保存SHSH2 | 泠泫凝的异次元空间 PVE超融合部署 | 泠泫凝的异次元空间 树莓派启用zram | 泠泫凝的异次元空间 在 Hyper-V 上安装 EVE-NG | 泠泫凝的异次元空间 Zabbix 部署与 Windows 硬件信息收集 | 泠泫凝的异次元空间 在WSL2中安装CUDA支持 | 泠泫凝的异次元空间 MinIO 集群部署 | 泠泫凝的异次元空间 vmware 虚拟化平台备份工具 Veeam 12 安装及配置 ubuntu 24.04 安装 nVidia 驱动后网卡消失 XMRig 自编译 | 泠泫凝的异次元空间 云桌面通过组策略统一体验配置 | 泠泫凝的异次元空间 Fortigate SSLVPN 无法连接内网 VNC 服务器 CentOS 7 使用镜像作为本地源并将自身作为YUM源服务器 | 泠泫凝的异次元空间 CentOS 7 离线更新 OpenSSH 服务 使用KubeKey离线部署Kubernetes | 泠泫凝的异次元空间 使用PGP对消息进行签名 | 泠泫凝的异次元空间 禁止MinIO展示桶内文件列表 | 泠泫凝的异次元空间 华为 Fusion Access 云桌面部署 | 泠泫凝的异次元空间 vmware Horizon 模板机部署 | 泠泫凝的异次元空间 vmware Horizon 云桌面与云应用部署 | 泠泫凝的异次元空间 Citrix XenApp 云应用交付 | 泠泫凝的异次元空间 Citrix XenDesktop 云桌面部署 | 泠泫凝的异次元空间 PVE LVM 扩容 | 泠泫凝的异次元空间 Linux 网络聚合(bond方式) | 泠泫凝的异次元空间 Citrix XenServer 7.2 部署教程 | 泠泫凝的异次元空间 在 Windows Server 2019 上安装 AMD 显卡驱动 openEuler 安装并使用 EPEL 源 | 泠泫凝的异次元空间 从已有Linux系统创建带桌面环境的Docker镜像 | 泠泫凝的异次元空间 下载联想原厂镜像及解密 | 泠泫凝的异次元空间 在基于 arm 架构的服务器上安装 PVE | 泠泫凝的异次元空间 自制 EVE-NG 镜像 | 泠泫凝的异次元空间 不使用 Snap 在 ubuntu 上安装 Chromium 浏览器 Fortigate 6.2 固件从 PPPoE 获得 IPv6 地址 Fortigate 手记 | 泠泫凝的异次元空间 Fortigate 通过命令行自定义 NTP 服务器 | 泠泫凝的异次元空间 arm 架构 CentOS 7 安装 MySQL 5.7 版本 ubuntu 20 安装计算卡驱动和 CUDA Toolkit 锐捷诺客云添加设备后一直显示“等待同步” | 泠泫凝的异次元空间 Windows 10 自动登录 | 泠泫凝的异次元空间 OpenWRT IPv6 防火墙设置 | 泠泫凝的异次元空间 k8s 部署踩坑合集 | 泠泫凝的异次元空间 改变 Ubuntu TTY 终端字体 | 泠泫凝的异次元空间 Parted 无损扩容磁盘分区 | 泠泫凝的异次元空间 NTP服务器测试 | 泠泫凝的异次元空间 【相亲相爱】2024祝大家!新年快乐!!! ESXi中重新挂载数据盘 | 泠泫凝的异次元空间 使用 MediaMTX + RTSP 搭建低延迟直播服务器 Firewalld 手记 | 泠泫凝的异次元空间 Ubuntu 上不使用 snapd 安装 Firefox 在 armbian 上安装 xfce 和 VNC 做远程桌面 在 ubuntu 20 上使用 TigerVNC 做远程桌面 在 openEuler 上部署安装 openGauss | 泠泫凝的异次元空间 Wireguard 组网笔记 | 泠泫凝的异次元空间 让特定IP(段)走VPN连接 | 泠泫凝的异次元空间 在Wireguard中排除部分IP(段) | 泠泫凝的异次元空间 CentOS 7 上升级 OpenSSL | 泠泫凝的异次元空间 将黑群晖部署到ESXi(笔记) | 泠泫凝的异次元空间 apk 代码反编译笔记 | 泠泫凝的异次元空间 Windows 搭建 iSCSI 服务器全攻略 | 泠泫凝的异次元空间 CentOS 7 编译安装 Python 3 开源语音识别工具 Whisper | 泠泫凝的异次元空间 Ubuntu 下 Python 编译安装及关联问题解决 | 泠泫凝的异次元空间 Ansible Tower 安装 | 泠泫凝的异次元空间 提高 PowerPoint 导出到图片时的分辨率 | 泠泫凝的异次元空间 利用亚马逊云服务器和VPC 构建安全可靠的虚拟网络 | 泠泫凝的异次元空间 Windows Server 多网卡链路聚合 | 泠泫凝的异次元空间 MT3000路由+移远EC20模块体验 | 泠泫凝的异次元空间 Python安装依赖时出现ctype问题 | 泠泫凝的异次元空间 GL-MT3000日用设置 | 泠泫凝的异次元空间 解除 vCenter 的最低内存限制 | 泠泫凝的异次元空间 跳过Windows 11的强制联网和账户登录 | 泠泫凝的异次元空间 Cloudflare Trace API 信息详解 | 泠泫凝的异次元空间 在CentOS中搭建由nginx反代和Apache2作为后端的Wordpress | 泠泫凝的异次元空间 通过nginx进行文件共享 | 泠泫凝的异次元空间 禁用 sudo 时密码认证 | 泠泫凝的异次元空间
Apache2搭建Web服务器 | 泠泫凝的异次元空间
Lxn's Area · 2021-05-03 · via 泠泫凝的异次元空间

我发现网上有关这个的教程都像有那什么大病一样,不是不全就是话都说不明白 ?_?
本文主要内容包括从纯净系统到配置好ssl的全过程,但不包括购买域名和配置服务器等基础操作。

配置

OS: Ubuntu 18.04 LTS
Apache: Apache/2.4.29

专有名词说明

  1. 未特殊说明情况下,本文中为你的域名。

  2. 未特殊说明情况下,本文中为你的联系方式(电子邮箱)。

  3. 未特殊说明情况下,本文中/Path/to/your/cert指的是你证书所在的路径。

Ubuntu里面所有命令前添加sudo是好习惯,尤其是把Desktop当Server用的时候。

1
2
3
4
sudo apt-get update
sudo apt-get install vim
sudo apt-get install apache2
sudo apt-get install openssl

Vim是可选的,你可以使用任何你习惯的文本编辑器。
openssl也是可选的,如果不需要https就不需要安装。

验证Apache2正确安装

1
apache2 -version

输出

1
2
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2020-08-12T21:33:25

即为成功。

配置Apache2

提示:以下步骤可能不规范,生产环境切勿使用该设置。
尤其是防火墙不要随便关闭,由于我内网到外网有硬件防火墙和上网行为审计管理,因此即使防火墙全关也可保证一定安全性。

  1. 关闭防火墙
1
2
3
4
5
6
7
8
9
# 关闭防火墙
sudo ufw disable

# 查看状态
sudo ufw status

# 输出(桌面Desktop版)
防火墙在系统启动时自动禁用
状态:不活动

iptables开放全部端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 开放全部端口
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
sudo iptables-save

# 重启后不重置防火墙
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload

# 开放指定端口
sudo iptables -I INPUT -p tcp --dport <PortNumber> -j ACCEPT
  1. 新建网站根目录
1
2
3
sudo mkdir -p /var/www/<YourDomainName>/html
sudo chown -R $USER:$USER /var/www/<YourDomainName>/html
sudo chmod -R 755 /var/www/<YourDomainName>
  1. 新建主页
1
sudo vim /var/www/<YourDomainName>/html/index.html

按“I”输入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>站点创建成功</title>
<style>
.container {
width: 60%;
margin: 10% auto 0;
background-color: #f0f0f0;
padding: 2% 5%;
border-radius: 10px
}

ul {
padding-left: 20px;
}

ul li {
line-height: 2.3
}

a {
color: #20a53a
}
</style>
</head>
<body>
<div class="container">
<h1>恭喜, 站点创建成功!</h1>
<h3>这是默认index.html,本页面由您写入生成</h3>
<ul>
<li>本页面在/var/www/<YourDomainName>/html/index.html</li>
<li>您可以修改、删除或覆盖本页面</li>
<li>E-mail: admin@arlxn.top</li>
</ul>
</div>
</body>
</html>

这是宝塔面板搭建的网站的默认页面简单修改的页面,嫌麻烦就先拿来用了orz~

当然你也可以输入其他任何你喜欢的HTML,输入完成后按Esc然后输入“:wq!”保存退出。

  1. 创建站点配置文件
1
sudo vim /etc/apache2/sites-available/<YourDomainName>.conf

按“I”输入

1
2
3
4
5
6
7
8
<VirtualHost *:80>
ServerAdmin <YourContactWay>
ServerName <YourDomainName>
ServerAlias <YourDomainName>
DocumentRoot /var/www/<YourDomainName>/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

完成后按Esc然后输入“:wq!”保存退出。

  1. 激活配置文件
1
2
3
4
sudo a2ensite <YourDomainName>.conf
sudo a2dissite 000-default.conf
sudo systemctl restart apache2
sudo apache2ctl configtest

若输出“Syntax OK”则为无错误,可在您的浏览器里面输入域名访问。

SSL

  1. 申请证书


Ps:很多域名提供商都会有免费赠送的TrustAsia或者Let’s Encrypt的证书可以申请
SSL证书不是域名证书

  1. 合并证书

一般证书下载后会提供一个完整的证书包,至少会包含Apache/Nginx/IIS/Tomcat四种不同服务所需的证书,这里只需要Apache证书,打开Apache证书文件夹,里面会有三个文件:1_root_bundle.crt(根证书)、2_DomainName.crt(域名证书)、3_DomainName.key(服务器私钥)。

新建一个文件夹,把3_DomainName.key文件复制出来,重命名为privkey.pem,保存备用。

用Notepad++(也可以是你习惯的任何文本编辑软件)打开1_root_bundle.crt和2_DomainName.crt,然后新建一个文本文档,按照2_DomainName.crt+1_root_bundle.crt的顺序保存成一个新文件,重命名为fullchain.pem保存到刚才新建的文件夹备用。

也可以不进行证书合并,但是手机访问时部分浏览器会提示证书链不完整或无法访问
若证书合并顺序顺序不正确会导致apache无法正常启动

腾讯云申请的TrustAsia证书包根目录里面有一个KEY文件和PEM文件,这两个文件是已经合并好的证书,改个名之后几乎可以开箱即用。

  1. 启用SSL模块
1
sudo a2enmod ssl
  1. 添加443端口监听

打开站点配置文件

1
sudo vim /etc/apache2/sites-available/<YourDomainName>.conf

按“I”添加如下内容(不用删除之前的内容)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<VirtualHost *:443>
ServerAdmin <YourDomainName>
DocumentRoot "/www/wwwroot/<YourDomainName>/"
ServerName SSL.<YourDomainName>
ServerAlias <YourDomainName>
#errorDocument 404 /404.html
ErrorLog ${APACHE_LOG_DIR}/<YourDomainName>-error_log
CustomLog ${APACHE_LOG_DIR}/<YourDomainName>-access_log combined

#SSL
SSLEngine On
SSLCertificateFile /Path/to/your/cert/fullchain.pem
SSLCertificateKeyFile /Path/to/your/cert/privkey.pem
SSLCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5
SSLProtocol All -SSLv2 -SSLv3 -TLSv1
SSLHonorCipherOrder On

</VirtualHost>

完成后按Esc然后输入“:wq!”保存退出。

  1. 激活配置文件
1
2
3
sudo a2ensite <YourDomainName>.conf
sudo systemctl restart apache2
sudo apache2ctl configtest

若输出“Syntax OK”则为无错误,可在您的浏览器里面输入https域名访问。

Apache2常用命令

  • 启动Apache2: sudo systemctl start apache2

  • 终止Apache2: sudo systemctl stop apache2

  • 终止Apache2后再启动Apache2: sudo systemctl restart apache2

  • 不终止Apache2仅重载和应用配置更改: sudo systemctl reload apache2

  • 每次开机时自动启动Apache2: sudo systemctl enable apache2

  • 每次开机时不自动启动Apache2: sudo systemctl disable apache2

  • 启用重写:sudo a2enmod rewrite

ufw防火墙常用命令

有些资料说不是所有的Ubuntu都会有ufw,如果没有的话需要先安装
sudo apt-get install ufw

  • 启用: sudo ufw enable

  • 关闭全部外部连接(入站): sudo ufw default deny

  • 禁用: sudo ufw disable

  • 查看状态: sudo ufw status

  • 允许外部访问80端口: sudo ufw allow 80

  • 禁止外部访问80端口: sudo ufw delete allow 80

  • 允许此IP访问所有的本机端口: sudo ufw allow from 192.168.1.1

  • 禁止外部访问smtp服务: sudo ufw deny smtp

以服务名代表端口,可以使用sudo less /etc/services列出所有服务信息, 其中包括该服务使用了哪个端口和哪种协议

  • 可以允许所有RFC1918网络(局域网/无线局域网的)访问这个主机
1
2
3
sudo ufw allow from 10.0.0.0/8
sudo ufw allow from 172.16.0.0/12
sudo ufw allow from 192.168.0.0/16
  • 重置所有规则: sudo ufw reset

常见问题和解决方案

  1. 报错查看日志
1
journalctl -xe
  1. 好多CDN都不支持SSL方式,使用前先查找CDN文档是否支持SSL方式访问。

  2. 测试时出现错误

1
2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

输入

1
2
3
echo "ServerName <YourDomainName>" | sudo tee /etc/apache2/conf-available/servername.conf
sudo a2enconf servername
sudo apache2ctl configtest

输出Syntax OK即可解决。

  1. Apache2网页中文乱码
1
sudo vim /etc/apache2/conf-available/charset.conf

然后删除AddDefaultCharset UTF-8前面的注释标记保存重载Apache2即可

HTTP强制跳转HTTPS

在站点配置文件中80端口配置区域加上以下代码即可

1
2
3
4
5
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}$1 [L,R=301]
</IfModule>

参考资料

特别鸣谢

 上一篇

Linux ubuntu