Ubuntu+Apache2配置腾讯云SSL证书实现HTTPS(2024最新)

目录

环境

正文

申请证书

操作

参考链接


Ubuntu+Apache2配置腾讯云ssl证书实现https


环境


本文所用的服务器环境是 Ubuntu18.04 + Apache2 .

正文

申请证书


打开腾讯云https://buy.cloud.tencent.com/ssl来获得腾讯云提供的免费证书:

点击域名型免费版,然后进去填一下网址和邮箱即可申请到。

证书申请下来后进入证书管理界面,下载Apache的那一个,解压缩里有四个文件。

比较重要的三个如下所示

root_bundle.crt    # 证书文件
xxx.xxx.xxx.crt # 证书文件
xxx.xxx.xxx.key # 私钥文件

操作

在/etc/apache2这个目录下,有两个有关的目录sites-available和sites-enabled,我们进入sites-enabled目录下可以发现,里面有一个文件000-default.conf

实质上这个文件是/etc/apache2/sites-available/000-default.conf这个文件的软链接。

我们要配置另 ssl 证书,要依靠另一个文件,也就是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,因为已经做了软链接,其实这时候修改000-default-ssl.conf或default-ssl.conf都一样。

这个文件没有做任何修改前长这样子(去除自带的注释之后):

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on

        SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>

    </VirtualHost>
</IfModule>


然后把从腾讯云上面下载好的证书(3个文件)传到你自定义的目录中

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

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin 你的邮箱
        
        DocumentRoot /var/www/html
        ServerName 你的域名

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on
        # 注意,需要添加这三行
        SSLCertificateFile 你自定义的路径/xxx.xxx.xxx.crt
        SSLCertificateKeyFile 你自定义的路径/xxx.xxx.xxx.key
        SSLCertificateChainFile 你自定义的路径/root_bundle.crt
    
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>
    </VirtualHost>
</IfModule>



重要的三个参数的作用如下表:

配置文件参数    说明
SSLEngine on    启用 SSL 功能
SSLCertificateFile    证书文件
SSLCertificateKeyFile    私钥文件
SSLCertificateChainFile    证书链文件
改好之后保存。

然后这时,我们加载一下 Apache2 的 SSL 模块:

sudo a2enmod ssl   #加载模块

sudo service apache2 restart # 重启服务



这时,在浏览器输入https://你的域名应该已经可以通过 https 的方式来访问网站了,这时浏览器那里应该也已经有了一个绿色的小锁。

但是,但是…这还不够,因为我们如果不主动输入https://的话,直接输入域名,还是会直接跳转到 80 端口的普通的 http 方式访问,所以我们需要强制使用 https 来访问

强制使用https
我们只需要打开/etc/apache2/sites-available/000-default.conf这个文件,在你的<VirtualHost*:80></VirtualHost>这个标签内随便一个地方加上三行:

RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]


然后保存,然后启动 Apache2 的重定向:

 sudo a2enmod rewrite



然后再重启 Apache2,至此大功告成:

sudo service apache2 restart


然后,打开浏览器直接输入域名,就会自动跳转到 https 的方式。

参考链接

Ubuntu+Apache2配置腾讯云ssl证书实现https-CSDN博客

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值