关于搭建HTTPS服务器服务

摘要:
关于HTTPS的基本原理大家都已经不再陌生,今天和大家说说如何搭建一个支持HTTPS的服务端。之前写过几篇关于HTTPS原理的文章,有用户留言希望了解一些如何在服务端搭建HTTPS服务的内容,这次就和大家聊聊这个话题。SSL证书搭建一个HTTPS站点,第一步要做的就是申请SSL证书,而且要在标准的证书颁发机构来申请。原因可以参考我前面关于HTTPS原理的相关文章。有了这些信息后,Apache就可以正确的处理HTTPS请求了。

关于 HTTPS 的基本原理大家都已经不再陌生,今天和大家说说如何搭建一个支持 HTTPS 的服务端。

服务端的 HTTPS

HTTPS 已经几乎成为了当前互联网推荐的通信方式,它能最大化保证信息传输的安全,从去年苹果的强制 HTTPS ,到如今各大网站都支持了 HTTPS。它会越来越普及。

之前写过几篇关于 HTTPS 原理的文章,有用户留言希望了解一些如何在服务端搭建 HTTPS 服务的内容,这次就和大家聊聊这个话题。

SSL 证书

搭建一个 HTTPS 站点,第一步要做的就是申请 SSL 证书, 而且要在标准的证书颁发机构来申请。 当然,从技术上来说,你可以使用自签名证书,但自签名证书会被所有的浏览器视为不安全的证书,并且会给用户报错,就像这样:

如何搭建一个HTTPS服务端

所以,还是需要申请一个正规的证书的。 可申请证书的颁发机构有很多,比如 GoDaddy,Comodo,Verisign 等等。价格从一年几美金到几十美金不等。

我们就以 GoDaddy 为例,带大家了解一下流程。 在 GoDaddy 的首页有一个 Web Security 标签,点击这个标签后可以找到 SSL Certificates 选项:

如何搭建一个HTTPS服务端

点击进去, 就可以看到可选的几个证书形式,有单域名的,还有允许多个二级域名的等:

如何搭建一个HTTPS服务端

避免广告嫌疑,下面的价格信息略去了~,这里只给大家介绍流程,帮助大家了解。 证书服务商大家可以自行选择。

接下来,证书颁发机构会让你填写一个叫做 CSR 的东西, 如果大家搞 iOS 开发对这个应该不陌生,申请苹果开发者证书的时候大家也做过类似的事情。

如何搭建一个HTTPS服务端

CSR 全称 Certificate Signing request。 顾名思义就是用于申请证书必须的一些信息,在 Lunix 系统中,它可以通过命令生成(大多数的服务端应该都是基于 Linux 的,所以我们用它来作为例子):

  1. $opensslreq-new-newkeyrsa:2048-nodes-keyoutyourdomain.key-outyourdomain.csr

openssl 命令,如果你的系统没有安装的话,可以通过包管理先安装。 需要把这里面的 yourdomain.key 和 yourdomain.csr 替换成你自己的名称,可以是域名,也可以是其他标识。

生成成功后,可以用 cat 命令输出 yourdomain.csr 中的内容:

  1. $catyourdomain.csr

会在命令行输出 CSR 的内容,把这段内容复制到前面截图中的文本框中,然后点击生成就好了。

注意,这里的 yourdomain.key 文件你要保管好。 这是你证书的私钥,后面配置 HTTPS 的时候需要用到它。 并且它不能重新生成,而且不能泄露出去。原因可以参考我前面关于 HTTPS 原理的相关文章。

与此同时,证书颁发机构在你提交 CSR 之后,会给你生成证书文件, Godaddy 会生成两个证书,一个是你站点的证书,一个是根证书。 把它们下载到你的服务器上面。

Apache 服务端配置

证书准备好之后,我们要对服务端程序进行配置,让它支持 HTTPS。这里我给大家以 CentOS 7 操作系统, Apache 2.x 服务端程序为例。

Apache 的 HTTPS 配置文件一般在 /etc/httpd/conf.d/ssl.conf 这个位置。 用 vim 编辑器打开它, 然后加入这样一个节点:

  1. <VirtualHost*:443>
  2. SSLEngineOn
  3. SSLCertificateFile/root/yoursite.crt
  4. SSLCertificateKeyFile/root/yoursite.key
  5. SSLCACertificateFile/root/rootcert.crt
  6. ServerAdminadmin@yoursite.com
  7. ServerNameyoursite.com
  8. DocumentRoot/var/www/html/
  9. </VirtualHost>

这里用到了我们前面准备的证书和秘钥。 SSLCertificateFile 是你站点的证书, SSLCACertificateFile 是根证书, SSLCertificateKeyFile 是只保存在你服务器的私钥。

有了这些信息后,Apache 就可以正确的处理 HTTPS 请求了。 在这之前我们还需要在做最后一步操作, 编辑 /etc/httpd/conf/httpd.conf 文件, 这个是 Apache 的主配置文件, 加入这样一行:

  1. Listen443

这个是让你的服务端同时监听 443 端口。 因为 HTTPS 的默认端口是 443, 所以这个设置是必须要有的。

一切都就绪后,重启你的服务器:

  1. systemctlrestarthttpd

然后再用浏览器输入 https://yoursite.com 访问你的站点时,就应该可以看到 HTTPS 验证成功的小锁头了。

防火墙设置

如果配置都就绪,你重启了之后,依然不能正常访问,有可能是你的防火墙把 443 端口拦截了,把它打开:

  1. iptables-AINPUT-ptcp-mtcp--sport443-jACCEPT
  2. iptables-AOUTPUT-ptcp-mtcp--dport443-jACCEPT

结束

目前成熟的 Web 服务程序都有对 HTTPS 很好的支持,只需要经过简单的配置,即可完成 HTTPS 服务器的搭建。 而 HTTPS 之所以相对性能消耗更大,是因为每次数据传输都需要进行加密和解密的操作。 作为 APP 开发者们,可能对服务端的技术了解的并没有那么深,可以把它作为一个备忘录,日后用到的时候再来看看。

免责声明:文章转载自《关于搭建HTTPS服务器服务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Arcgis server的池化和非池化移动端,input输入获得焦点被键盘遮住简单解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Struts核心技术简介

Struts核心技术简介 1、Struts内部机制 Struts是一种基于MVC经典设计模式的开发源代码的应用框架,它通过把Servlet、JSP、JavaBean、自定义标签和信息资源整合到一个统一的框架中,为Web开发提供具有高可配置性的MVC开发模式。 Struts体系结构实现了MVC设计模式的概念,它将Model、View、和Controller分...

Hadoop 管理监控工具:Apache Ambari

Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari目前已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop和Hcatalog等。 Apache Ambari 支持HDFS、MapReduce、Hive、Pig、Hbase...

Apache Shiro快速如门教程

第一部分 什么是Apache Shiro    1、什么是 apache shiro :   Apache Shiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理 如同 Spring security 一样都是是一个权限安全框架,但是与Spring Security相比,在于他使用了和比较简洁易懂的认证和授权方式。  ...

Apache服务器安全配置

用户权限分配 Linux中默认给予apache的是一个www-data账户 可以看到第一行为apache的主进程,以root权限进行,因为apache的web端口是80或者443,而在Linux中开启小于1024的端口需要root权限,所以主进程必须以root权限运行,第二行起为apache子进程,执行用户为www-data,是Ubuntu中运行web服...

nginx 之 https 证书配置

HTTPS原理和作用 为什么需要HTTPS 原因:HTTP不安全 传输数据被中间人盗用、信息泄露 数据内容劫持、篡改 HTTPS协议的实现 对传输内容进行加密以及身份验证 对称加密:加密秘钥和解密秘钥是对等的,一样的 非对称加密: HTTPS加密协议原理:   中间人伪造客户端和服务端:(中间人可以伪装成客户端和服务端,中间人可以对数据进行劫持,不...

Linux+Apache+MySQL+PHP5的安装与配置与phpBB2论坛的架设

在现在的网络应用中,Linux+Apache+MySQL+PHP已经成为一个重要的组合应用了.在这里我们以PHP5为例谈一下Linux+Apache+MySQL+PHP5的安装与配置.在经过这样的工作以后我们就可以用phpBB2来架设我们自己的论坛了.1 安装MySQLMySQL可以从htt://www.mysql.org处下载得到.解压后入其目录,我们可...