Linux下安装Apache及证书服务

Linux下安装Apache及证书服务

系统:Debian 10.5 (阿里云)

工具:Xshell 6 (Build 0206)

1.安装Apache2

sudo apt-get update
sudo apt-get install apache2

在这里插入图片描述

2.开放端口

为了后续验证需前往云服务器控制台开放80和443端口

3.进程管理

systemctl start apache2 	#启动进程
systemctl stop apache2		#关闭进程
systemctl status apache2	#查看状态
systemctl reload apache2	#重新加载
systemctl disable apache2	#禁用自启动
systemctl enable apache2	#自启动

image-20210803135319337

4.设置虚拟主机

sudo mkdir -p /var/www/your_domain	#使用-p标志创建所有必需的父目录
sudo chown -R $USER:$USER /var/www/your_domain	#使用$USER环境变量分配目录的所有权
sudo chmod -R 755 /var/www/your_domain	#确保根目录权限

image-20210803142746864

然后就可以添加一个示例主页了

vim /var/www/your_domain/index.html
<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>

为了使Apache可以提供此内容,必须使用正确的指令创建虚拟主机文件

vim /etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
    ServerAdmin admin@your_email_domain
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    
</VirtualHost>

使用a2ensite工具启用文件:

sudo a2ensite your_domain.conf
sudo apache2ctl configtest #该命令可以测试是否有配置错误
sudo systemctl restart apache2	#重启使配置生效

然后就可以通过域名(需自行申请备案一个域名)访问你的站点了

此时输入IP访问的是html目录下的默认站点

5.申请SSL并下载

原DIgicert 免费单域名证书,org、jp等特殊域名存在无法申请的情况,正式环境建议使用付费证书。

每个实名主体个人/企业,一个自然年内可以领取一次数量为20的云盾单域名试用证书,如需更多云盾单域名试用证书需要额外付费购买。

证书个数是指可以签发证书的数量

例如,证书个数为1,将签发一张有效期为1年的证书

证书个数支持同时签发多张证书或者1张证书托管多年的服务

image-20210803140401335

6.安装SSL

sudo apt-get install openssl    #安装SSL
sudo a2enmod ssl    #开启SSL

image-20210803140650540

此时会在/etc/apache2/sites-available中生成default-ssl.conf

在这里插入图片描述

在sites-enabled目录下可以发现,里面有一个文件000-default.conf,实质上这个文件是/etc/apache2/sites-available/000-default.conf这个文件的软链接,它保证了我们可以通过http方式访问

同理设置一个default-ssl.conf的软链接,把这个文件链接到sites-enabled这个文件夹中:

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

在这里插入图片描述

现在对证书文件进行配置,因为已经做了软链接,这时候修改000-default-ssl.conf或default-ssl.conf都一样

然后把从阿里云上面下载好的证书(3个文件)传到你自定义的目录中,利用rz命令上传

apt-get install lrzsz # 安装完输入rz命令即可上传命令了,-f 可以覆盖上传,默认上传至云服务器上输入命令rz时所在的目录;从云服务器上下载文件的命令式sz

image-20210803145205530

然后我们需要修改一下,修改成这样:

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin 你的邮箱
        
        DocumentRoot /var/www/你的目录
        ServerName 你的域名
 
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
 
        SSLEngine on
        # 注意,需要添加这三行
        SSLCertificateFile 你自定义的路径/2_xxx.xxx.xxx.crt
        SSLCertificateKeyFile 你自定义的路径/3_xxx.xxx.xxx.key
        SSLCertificateChainFile 你自定义的路径/1_root_bundle.crt
    
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>
    </VirtualHost>
</IfModule>
sudo a2enmod ssl   #加载模块
sudo service apache2 restart # 重启服务

在这里插入图片描述

7.强制使用https

#将以下内容加入到/etc/apache2/sites-available/中对应的配置文件中
RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]

然后启动 Apache2 的重定向:

#sudo a2ensite your_domain.conf
sudo a2enmod rewrite
sudo service apache2 restart
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值