关于我
~一个热爱火影的业余小提琴玩家~
Joynaruto

记apache2安装

起因

最早的起源应该可以追溯到rocket.chat搬家失败,然后又一直搞不明白caddy的端口用法,于是我开始研究apache2,从网站的搭建到启用sslhttps协议,踩得坑实在太多,于是有了这篇文章,算是做个备忘录吧~

安装本体

apt update
apt upgrade
apt install apache2

开启https/ssl

手动证书

#在etc/apache2/ssl建立文件夹,将证书复制进去,启用几个模块
sudo a2enmod ssl
sudo a2enmod proxy_http
sudo a2enmod proxy
sudo a2enmod proxy_wstunnel
sudo a2enmod rewrite
#修改 /etc/apache2/sites-available/default-ssl.conf中以下部分
<IfModules mod_ssl.c>
<VirtualHost *:443>
ServerName #修改为证书绑定的域名www.YourDomainName.com。
SSLCertificateFile /etc/apache2/ssl/www.YourDomainName_public.crt #将/etc/apache2/ssl/www.YourDomainName.com_public.crt替换为证书文件路径+证书文件名。
SSLCertificateKeyFile /etc/ssl/apache2/www.YourDomainName.com.key #将/etc/apache2/ssl/www.YourDomainName.com.key替换为证书密钥文件路径+证书密钥文件名。
SSLCertificateChainFile /etc/apache2/ssl/www.YourDomainName.com_chain.crt #将/etc/apache2/ssl/www.YourDomainName.com_chain.crt替换为证书链文件路径+证书链文件名。
#建立软链
sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf
#重新加载apache2配置文件
sudo /etc/init.d/apache2 force-reload
#重启Apache 2服务
service apache2 restart

自动证书并延期(2020.10.21更新)

#添加cerbot最新源
sudo add-apt-repository ppa:certbot/certbot
#升级系统
sudo apt update
#安装cerbot
sudo apt install python-certbot-apache
#重启apache2
sudo service apache2 restart
#向Let's Encrypt申请证书,按提示操作
sudo certbot --apache -d 你的域名1 -d 你的域名2
#访问https://你的域名,查看是否已配置小绿锁
#配置自动延期(默认只有30天)
crontab -e
0 */12 * * * sudo certbot renew --force-renewal   //每天申请延期两次
#花几天测试下是否能正常延期,搞定!

——2020-02-29更新验证登录——

开启账号密码验证登录(非必须)

创建账密及权限配置方面参考这篇即可

改写Apache的配置文件

/etc/apache2/sites-available/default-ssl.conf中加入以下代码:

<VirtualHost _default_:443>   //如果要使用其他端口,可以修改,不过别忘了在ports.conf也添加监听
	ServerAdmin webmaster@localhost
	ServerName xxx.com   //自己的域名
	DocumentRoot /var/www/html/  //按需修改
	SSLEngine on
	SSLCertificateFile	/etc/apache2/ssl/xxx.crt  //主证书
	SSLCertificateKeyFile /etc/apache2/ssl/xxx.key    //密钥证书
	SSLCertificateChainFile /etc/apache2/ssl/xxx.crt  //中间证书
	<FilesMatch "\.(cgi|shtml|phtml|php)$">
		SSLOptions +StdEnvVars
	</FilesMatch>
	<Directory /usr/lib/cgi-bin>
		SSLOptions +StdEnvVars
	</Directory>
	<Location /xxx>   //要加密的路径
           Authtype Basic
           AuthName "Please enter the secret key"  //自定义弹框显示内容
           AuthUserFile /etc/apache2/pass.wd   //调用上述的密码文件
           Require valid-user
        </Location>
</VirtualHost>

重启Apache 2服务

service apache2 restart

验证

在浏览器输入http(s)://域名:端口/路径后弹出登录验证即是成功!

发表回复

textsms
account_circle
email

Joynaruto

记apache2安装
起因 最早的起源应该可以追溯到rocket.chat搬家失败,然后又一直搞不明白caddy的端口用法,于是我开始研究apache2,从网站的搭建到启用ssl的https协议,踩得坑实在太多,于是有了这篇文…
扫描二维码继续阅读
2020-01-17