1. 获取SSL证书

根据自己的网站服务器来获取不同的ssl证书,我的服务器是ubuntu20.04。

证书如下:

00_***.key       ## 私钥文件
01_CERTIFICATE_***_***.crt    ## 证书文件
02_INTERMEDIATE_***.crt  证书链文件

将证书上传到你的服务器上,我是在/etc/ssl/目录下新建了一个文件夹。 

2. 配置证书

首先,进入/etc/apache2/sites-available目录,如下:

原先只有000-default.conf和default-ssl.conf两个文件,“.old”结尾的文件用于备用原有配置文件。

做好备份后,我们需要设置一个软链接,把这个文件链接到sites-enabled这个文件夹中,可以使用绝对路径,也可以使用相对路径。我使用的是绝对路径,命令如下:

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

然后去修改这个文件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>

修改后内容如下(修改的内容后有注释):

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin ***@***.** ## 你的邮箱,不修改也可以 DocumentRoot /var/www/html/policy ## 你的应用目录 ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on      ## 下面三行配置证书文件
SSLCertificateFile /etc/ssl/***/01_CERTIFICATE_***_***.crt ## 证书文件,/etc/ssl/***是步骤1中的自定义文件夹
SSLCertificateKeyFile /etc/ssl/***/00_***.key ## 私钥文件
     SSLCertificateChainFile /etc/ssl/***/02_INTERMEDIATE_***.crt   ## 证书链文件, 该行在原始文件中是被注释的

<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory> </VirtualHost>
</IfModule>

重要的4个参数,作用如下: 

SSLEngine on	## 启用 SSL 功能
SSLCertificateFile ## 证书文件
SSLCertificateKeyFile ## 私钥文件
SSLCertificateChainFile   ## 证书链文件

改好之后,Esc,:wq 保存。

然后加载一下 Apache2 的 SSL 模块:

sudo a2enmod ssl   #加载模块
sudo systemctl restart apache2 # 重启服务

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

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

3. 强制 https 访问

打开/etc/apache2/sites-available/000-default.conf文件,在VirtualHost标签内添加如下三行:

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

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

sudo a2enmod rewrite

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

sudo systemctl restart apache2 

刷新一下网页,输入域名,就会直接跳转HTTPS访问。

ubuntu20.04 apache2 配置安装ssl证书的更多相关文章

  1. 转【翻译】怎样在Ubuntu 12.04上配置Apache SSL证书

    关于SSL证书 SSL证书是加密网站信息和创建一个更安全的连接的一种方式.另外,证书能够向网站訪问者展示VPS的身份信息. 证书颁发机构颁发SSL证书.用来验证server的具体信息,而一个自签名的证 ...

  2. oneinstack如何安装ssl证书和配置Let's Encrypt免费SSL证书教程汇总(转)

    OneinStack包含以下组合:lnmp(Linux + Nginx+ MySQL+ PHP) LNMP安装SSL安全证书 部署HTTPS:https://www.gworg.com/ssl/309 ...

  3. Tomcat从安装到配置Https SSL证书

    为什么要写本文? 今天一个群友在群里问怎么给Tomcat配置SSL,也就是HTTPS,他买的阿里云的服务器,自带公网ip,还找到了免费的SSL证书 既然@我了,我就帮忙搞一搞呗,我就要了一个带sudo ...

  4. phpStudy模式下安装ssl证书,详细版

    phpStudy模式下安装ssl证书,详细版 2017年12月16日 14:27:38 骑着蚂蚁追大象 阅读数:4232 标签: phpstudy安装ssl证书 更多 个人分类: php   版权声明 ...

  5. MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动

    MVC图片上传详解   MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...

  6. SSL安装方法一:在Windows Server 2008安装SSL证书(IIS 7.0)

    购买的是GlobalSign 公司的通配符域名型SSL 大致的意思就是“通配符公用名填写*.域名.com,这个下面的所有子域名是不受数量限制的,*可以换成任意字符” 1 生成数字证书签名请求文件(CS ...

  7. phpStudy环境安装SSL证书教程(apache)

    https://cloud.tencent.com/product/ssl 此链接是检测域名 证书的可以检测一下 下面是证书配置 小白呢亲测 作为PHP程序员,我们一定要学会使用phpStudy环境集 ...

  8. Linux+Apache下如何安装SSL证书

    最近很多站长在问linux系统平台下如何安装SSL证书?Linux+Apache下如何安装SSL证书?本文整理了关于Linux+Apache下如何安装SSL证书的相关教程供大家参考,更多SSL证书安装 ...

  9. nginx 安装 ssl 证书

    nginx 安装 ssl 证书 关键词: pem 转 crt , 证书续期, nginx 部署 ssl 证书, 解决 SSL23_GET_SERVER_HELLO 错误. 之前免费申请的 1年的证书过 ...

随机推荐

  1. ASP.NET 检测当前计算机及登录用户名

    TextBox1.Text = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

  2. 求数组的子数组之和的最大值II

    这次在求数组的子数组之和的最大值的条件下又增加了新的约束:  1.要求数组从文件读取.      2.如果输入的数组很大,  并且有很多大的数字,  就会产生比较大的结果 (考虑一下数的溢出), 请保 ...

  3. [刘阳Java]_MyBatis_注解基本用法_第10讲

    MyBatis注解提出,可以说是非常好简化了MyBatis配置文件的使用.下面我们简单地来告诉大家如何使用MyBatis的注解 定义接口 package com.gxa.dao; import jav ...

  4. SpringBoot总结之事务和AOP

    一.事务 在Spring Boot中,当我们使用了spring-boot-starter-jdbc或spring-boot-starter-data-jpa依赖的时候,框架会自动默认分别注入DataS ...

  5. oracle 密码详解以及破解

    参考的相关资料等: https://docs.oracle.com/en/database/oracle/oracle-database/18/spmsu/finding-and-resetting- ...

  6. Pytorch系列:(八)学习率调整方法

    学习率的调整会对网络模型的训练造成巨大的影响,本文总结了pytorch自带的学习率调整函数,以及其使用方法. 设置网络固定学习率 设置固定学习率的方法有两种,第一种是直接设置一些学习率,网络从头到尾都 ...

  7. js里的发布订阅模式及vue里的事件订阅实现

    发布订阅模式(观察者模式) 发布订阅模式的定义:它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知. 发布订阅模式在JS中最常见的就是DOM的事件绑定与触发 ...

  8. informix错误代码小结

    informix错误代码小结 所有错误可以用finderr+错误代码查到,英文的,这里中文注释便于理解. -100 错误的描述:C-ISAM错误:向具有唯一索引的字段加入一个重复值.  系统的操作:该 ...

  9. linux删除命令

    Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身rm -rf *

  10. JDK 和 CGLib 实现动态代理和区别

    JDK 和 CGLib 实现动态代理和区别 在日常的开发中,Spring AOP 是一个非常常用的功能.谈到 AOP,自然离不开动态代理. 那么,基于 JDK 和 CGLib 如何实现动态代理,他们之 ...