几天前用Apache 2部署了一个静态网页,但通过域名访问时Google提示“不安全”,经了解,原来是缺少证书。

什么是SSL证书?

SSL 是指安全套接字层,简而言之,它是一项标准技术,可确保互联网连接安全,保护两个系统之间发送的任何敏感数据,防止网络犯罪分子读取和修改任何传输信息,包括个人资料。两个系统可能是指服务器和客户端(例如,浏览器和购物网站),或两个服务器之间(例如,含个人身份信息或工资单信息的应用程序)。

环境准备

操作系统:Ubuntu

Web服务器:Apache 2

我使用的是已安装好Apache 2的阿里云Ubuntu 16.04.

前提条件

需要下载SSL证书,我是在阿里云申请的免费证书(SSL证书控制台

操作步骤

1、运行以下命令在apache2目录下创建ssl目录。

mkdir /etc/apache2/ssl

2、运行以下命令将下载的阿里云证书文件复制到ssl目录中。

cp -r YourDomainName_public.crt /etc/apache2/ssl
cp -r YourDomainName_chain.crt /etc/apache2/ssl
cp -r YourDomainName.key /etc/apache2/ssl

3、运行以下命令启用SSL模块。

sudo a2enmod ssl

SSL模块启用后可执行ls /etc/apache2/sites-available查看目录下生成的default-ssl.conf文件。

说明 443端口是网络浏览端口,主要用于HTTPS服务。SSL模块启用后会自动放行443端口。若443端口未自动放行,可执行 vi /etc/apache2/ports.conf并添加 Listen 443手动放行。

4、运行以下命令修改SSL配置文件default-ssl.conf。

vi /etc/apache2/sites-available/default-ssl.conf

在 default-ssl.conf文件中找到以下参数进行修改后保存并退出。

<IfModules mod_ssl.c>
<VirtualHost *:443>
ServerName www.YourDomainName.com。
SSLCertificateFile /etc/apache2/ssl/YourDomainName_public.crt #证书文件路径+证书文件名。
SSLCertificateKeyFile /etc/apache2/ssl/YourDomainName.com.key
SSLCertificateChainFile /etc/apache2/ssl/YourDomainName.com_chain.crt

修改完后如图:

/sites-available:该目录存放的是可用的虚拟主机;/sites-enabled:该目录存放的是已经启用的虚拟主机。

 说明 default-ssl.conf文件可能存放在 /etc/apache2/sites-available或 /etc/apache2/sites-enabled目录中。
5、运行以下命令把default-ssl.conf映射至/etc/apache2/sites-enabled文件夹中建立软链接、实现二者之间的自动关联。
sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf

6、运行以下命令重新加载Apache 2配置文件。

sudo /etc/init.d/apache2 force-reload

7、运行以下命令重启Apache 2服务。

sudo /etc/init.d/apache2 restart

检验

Apache 2服务重启成功后,您可在浏览器中输入https://www.YourDomainName.com验证证书安装结果。浏览器地址栏显示绿色的小锁标识说明证书安装成功。

参考链接:

1、https://help.aliyun.com/document_detail/102450.html?spm=5176.2020520154.cas.13.7fd17EDz7EDzpx

2、https://www.websecurity.symantec.com/zh/cn/security-topics/what-is-ssl-tls-https

Ubuntu系统Apache 2部署SSL证书的更多相关文章

  1. CentOS系统Tomcat 8.5或9部署SSL证书

    本文档介绍了CentOS系统下Tomcat 8.5或9部署SSL证书的操作说明. 环境准备 操作系统:CentOS 7.6 64位 Web服务器:Tomcat 8.5或9 前提条件 已从阿里云SSL证 ...

  2. 在IIS下部署SSL证书实现HTTPS

    在IIS下部署SSL证书实现HTTPS   HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版.谷歌已经制定了一项长远的计划,它的最终目标是将所有通过HTTP协议呈现的网页标为“不安全” ...

  3. Resin 4.0 部署SSL证书

    前言 Resin目前最新的版本还是4.0 (4.0.49),使用Java EE6,在Resin上部署证书,一般有两种方式,首先我们推荐采用Openssl方式,不仅因为Openssl模式下的速度更快,而 ...

  4. Ubuntu系统Apache Maven安装

    操作系统:Linux x64 / Ubuntu 14.04 Apache Maven版本:3.3.9 建议预先搭建Java开发环境:详见上一篇<Linux Ubuntu系统下Java开发环境搭建 ...

  5. IIS部署SSL证书后提示不可信的解决方案

    IIS部署SSL证书后提示不可信的解决方案   本帖最后由 wosign-support3 于 2015-7-17 17:18 编辑 第一步:打开mmc——点击文件——添加删除管理单元——证书——计算 ...

  6. Tomcat部署SSL证书过程中遇到的问题

    在CentOS7中Tomcat部署SSL证书时遇到的问题 1.配置servlet.xml 配置tomcat/conf/server.xml 加入以下代码 <Connector port=&quo ...

  7. 阿里云部署SSL证书详解

    http://mp.weixin.qq.com/s/NV7Zad4DVEgzG2GCHYJVLw 查找中间证书 为了确保兼容到所有浏览器,我们必须在阿里云上部署中间证书,如果不部署证书,虽然安装过程可 ...

  8. Apache万网SSl证书安装不成功的一个注意事项(https安全链接,基于phpstudy)

    最近,微信小程序挺火,要做小程序网站域名必须要有ssl证书,形成https://的安全链接,我于是从万网上下载了一个免费的ssl证书,按照万网提供的安装方式怎么也安装不好,最后我这个Apache小白费 ...

  9. IBM LOTUS DOMINO 9 部署SSL证书

    前言 随着SHA1算法在2016年12月31日以后,将被强制淘汰,所有新的SSL证书都必须支持SHA256算法,所以我们必须将IBM Domino Server升级到9.0以上才可以支持SHA256算 ...

随机推荐

  1. 安装VMware-tools出现initctl: Job failed to start

    安装VMware-tools中出现: ******* Creating a new initrd boot image for the kernel.update-initramfs: Generat ...

  2. ue4 改c++类名

    http://blog.csdn.net/chinahaerbin/article/details/50855135

  3. android studio 生成引用arr

    http://blog.csdn.net/luyanjun07/article/details/51558151 1.背景 jar:无法包含资源文件 library:可以包含资源文件 但是引入显得比较 ...

  4. 2014-10-4 NOIP模拟赛

    1.某种密码(password.*) 关于某种密码有如下描述:某种密码的原文A是由N个数字组成,而密文B是一个长度为N的01数串,原文和密文的关联在于一个钥匙码KEY.若KEY=∑▒[Ai*Bi],则 ...

  5. Noip2016day1 玩具迷题toy

    题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉 ...

  6. c语言中的switch case语句

    switch--case语句中,switch后面跟一个变量,这个变量不可以是字符数组,字符指针,字符串数组,浮点型(实型).它可以是整型,字符型(在本质上也是整型).所以这导致case后面的常量表达式 ...

  7. 7.Python初窥门径(数据类型补充,操作及注意事项)

    python(数据类型补充,转换及注意事项) 数据类型补充 str str.capitalize() 首字母大写 str.title() 每个单词首字母大写 str.count() 统计元素在str中 ...

  8. 两数相加LeetCode

    给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和 ...

  9. php删除文件

    unlink() 函数删除文件. 若成功,则返回 true,失败则返回 false. unlink里的参数需要文件的绝对路径

  10. python 3 学习字符串和编码

    字符串和编码 阅读: 895464 字符编码 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字 ...