从HTTP切换到HTTPS的完整指南





现在HTTPS是每个网站的必备条件:用户在提供详细信息时希望他们的信息是安全的; Chrome和Firefox将那些有提交表单页面但是不是HTTPS的网站明确标记为不安全的; 这是一个SEO排名因素 ; 一般而言,这对用户隐私有严重的影响。其实,现在有很多方法可以让你免费获取HTTPS证书,所以切换到HTTPS只是一个你愿不愿意的问题。


设置HTTPS对于没有经验的用户可能有点吓人 - 它与需要许多步骤,也需要具体的加密和服务器配置知识,听起来很复杂的样子。。。。。


在本指南中,我将解释各个组件和步骤,并将清楚地介绍设置的各个阶段。我将尽力将本指南写的简单易懂,特别是如果你的托管服务提供商也提供HTTPS证书 - 你可以快速方便地从控制面板执行所有操作。


我已经在cPanel,Apache HTTP服务器的管理员,Linux和Unix上的nginx以及Windows上的Internet Information Server中包含了共享托管计划的所有者的详细说明。


让我们荡起双桨,从基础开始吧~~~~


HTTP Vs. HTTPS Vs. HTTP / 2 Vs. SSL对 TLS:什么是什么?


很多首字母缩略词用于描述客户端和服务器之间的通信过程。这些往往让不熟悉其中原理的人看着很晕。。。。。


超文本传输协议(HTTP)是让客户端和服务器能够进行通信的基本通信协议。它涵盖了请求和响应,会话,缓存,身份验证等等。协调工作以及超文本标记语言(HTML)的工作始于1 9 8 9年,由Tim Berners-Lee爵士及其在CERN的团队开发。协议的第一个官方版本(HTTP 1.0)于1996年发布,不久之后是1997年发布的目前广泛采用的版本(HTTP 1.1)。


该协议在浏览器和服务器之间以明文形式传输信息,允许信息通过的网络查看传输的信息。这是一个安全隐患,因此引入了HTTP Secure(HTTPS),允许客户端和服务器首先建立一个加密的通信通道,然后通过它传递明文HTTP消息,有效地保护他们免受窃听。


使用传输层安全(TLS)协议(以前称为安全套接层(SSL))创建加密通道。术语SSL和TLS通常可互换使用,SSL 3.0被TLS 1.0替代。SSL是Netscape开发的协议,而TLS是IETF标准。在撰写本文时,所有版本的SSL(1.0,2.0,3.0)由于各种安全问题而被淘汰,并将在当前浏览器中产生警告,并且TLS版本(1.0,1.1,1.2)正在使用,目前有1.3个草稿。


所以,在1996年和1997年的某个时候,我们得到了目前稳定版本的互联网(HTTP 1.1,有或没有SSL和TLS),这个版本仍然支持着大多数网站。以前,HTTP用于非敏感流量(例如阅读新闻),HTTPS用于敏感流量(例如身份验证和电子商务); 然而,随着隐私越来越受到关注,网络浏览器(如Google Chrome)会将HTTP网站标记为“不是私有”,并将来会引入HTTP警告。


越来越多的网站正在采用的HTTP协议的升级版本--HTTP / 2的增加了新功能(压缩,复用,优先级排序),以减少延迟并提高性能和安全性。


在HTTP版本1.1中,安全连接是可选的(你可能拥有彼此独立的HTTP和/或HTTPS),而在HTTP / 2中它实际上是必需的 - 即使该标准定义了HTTP / 2(带或不带TLS),大多数浏览器厂商表示,他们只会通过TLS实现对HTTP / 2的支持。


HTTPS提供什么?


为什么首先要用HTTPS?它主要有三个原因:


保密性

保护双方在互联网等公共媒体之间的沟通。例如,没有HTTPS,使用接入点的用户在线购物时,运行Wi-Fi接入点的人可能会看到信用卡等私人信息。


诚信

这就确保信息完整而不变地到达目的地。例如,我们的Wi-Fi朋友可以向我们的网站添加额外的广告,降低图像的质量以节省带宽或更改我们阅读的文章的内容。HTTPS确保网站无法修改。


认证

这确保网站的一致性。例如,运行Wi-Fi接入点的同一个人可以将浏览器发送到假网站。HTTPS确保一个说它是example.com的网站就是example.com。一些证书甚至检查该网站后面的法定身份,所以你可以放心yourbank.com是YourBank,Inc的网站.



密码学


保密性,完整性和身份验证不是HTTPS特有的:它们是密码学的核心概念。我们再来看一下他们。


保密


保密性是隐私,即保护信息免受未经授权的第三方的阅读。该过程通常涉及将明文信息的可读(即可听和可见)形式转化为密文,不可读的版本。这个过程称为加密。将不可读的密文转回可读明文的相反过程称为解密。有许多方法 - 密码函数(或算法) - 来加密和解密信息。


为了让双方能够沟通,他们应该就两件事情达成一致:

  • 他们将在他们的沟通中使用哪种算法(密码函数)
  • 将在方法中使用哪些参数,密码或规则(即秘密)。


有两种主要的加密方式:

  • 对称

       双方共享一个共同的秘密密钥

  • 不对称

       一方有一对秘密和公钥,公钥基础设施(PKI)的基础。


对称类的方法依赖于具有共享密钥的双方,发送者用于加密信息,而接收者又使用相同的方法和密钥进行解密(见下图)。这些方法的问题是双方如何相互协商(即交换)秘密但是不需要双方在物理上连接,双方需要有一个安全的沟通渠道。



非对称方法来解决这类问题-基于公钥和私钥的。明文使用其中一个密钥进行加密,只能使用其他互补密钥进行解密。


那么它是如何工作的呢?我们假设我们有两方愿意相互交流 - 爱丽丝和鲍勃(这些都一些教程和安全手册里面的虚构人物的名字,所以我们也将遵守这里的传统) 。他们都有一对钥匙:私钥和公钥。私钥只对其各自的所有者是已知的; 任何人都可以使用公钥。


如果爱丽丝想向鲍勃发消息,她将获得他的公开密钥,加密明文并向他发送密文。然后他会使用自己的私钥来解密它。


如果Bob想向Alice发送回复,他将获取公钥,加密明文并发送密文。然后,Alice将使用自己的私钥对其进行解密。



何时使用对称,何时使用非对称加密?非对称加密用于交换客户端和服务器之间的秘密。在现实生活中,我们通常不需要双向非对称通信 - 如果其中一方(我们简称为服务器,为简单起见)就有一套密钥,所以它可以接收一个加密消息。它真正保护信息的安全性只有一个方向 - 从客户端到服务器,因为用公钥加密的信息只能使用私钥解密; 因此,只有服务器可以解密它。另一个方向不受保护 - 用服务器的私钥加密的信息可以由任何人的公钥解密。


使用对称加密来保护传输中的实际数据,因为它比非对称加密快得多。双方(客户端和服务器)与以前交换的密钥是唯一能够加密和解密信息的人。


这就是为什么握手的第一个不对称部分也被称为密钥交换,也是为什么实际的加密通信使用被称为密码方法的算法。


诚信


用HTTPS解决的另一个问题是数据完整性:(1)整个信息是否成功获得,以及(2)是否被转接中的某人修改。为了确保信息传输成功,使用消息摘要算法。为每个交换的消息计算消息认证码(MACs)密码散列过程。例如,获得MAC(有时称为标签)使用一种方法来确保以下的做法是不可能的(通常使用的术语是不可行的):

  • 更改消息而不影响标签,
  • 从两个不同的消息生成相同的标签,
  • 反转该过程并从标签获取原始消息。


认证


什么是认证?公钥基础设施的现实应用问题是双方都无法知道对方真的是谁 - 他们是分开的。为了证明另一方的身份,就需要双方相互信任的第三方 - 认证机构(CA)。CA 颁发证书,指出域名example.com(唯一标识符)与公钥相关联XXX。在某些情况下(EV和OV证书 - 见下文),CA还将检查特定公司是否控制该域。该信息由认证机构X(即通过认证)保证,并且该保证不早于(即,开始)日期Y并且不晚于(即到期)日期Z.所有这些信息都转入单个文档中,称为HTTPS证书。提出一个容易理解的类比,就像一个国家政府(所有人信任的第三方)向一个人发出身份证或护照(证书) - 每个信任政府的一方也会接受身份证持有人的身份(假设身份证件不是假的,当然不在本例的范围之内)。


认证机构(CA)是可信任签署证书的组织。操作系统,如Windows,MacOS,iOS和Android以及Firefox浏览器,都有可信证书列表。


你可以检查浏览器信任哪些CA:

  • Firefox

       “选项”→“高级”→“证书”→“查看证书”→“权限”

  • Windows

       “控制面板”→“Internet选项”→“内容” - “证书”→“受信任的根证书颁发         机构/中级认证机构”

  • Mac

     “应用程序”→“实用程序”→“钥匙串访问”。在“类别”下选择“证书”


所有证书被检查和信任 - 由操作系统或浏览器(如果直接受信任)或受信任的实体验证。这种传递信任机制被称为信任链:


你可以添加其他不公开的CA,这在使用自签名证书时非常有用(稍后将讨论)。


在大多数常见情况下,客户端只需要知道服务器 - 例如,向其客户提供电子商务网站 - 因此只有网站需要证书。在其他情况下,例如电子政务系统,服务器和客户端,请求服务都应该具有身份验证。这意味着双方应该使用证书向另一方进行身份验证。此设置也不在本文的范围之内。


HTTPS证书的类型


有几种类型的HTTPS证书。它们可以按照以下标准进行分类。

身份验证


域验证(DV)

最常见的证书类型,DV证书验证域与特定公钥的匹配。浏览器与服务器建立安全连接,并显示封闭的挂锁标志。点击标志将显示“本网站不提供所有权信息”。除了域名之外,没有特殊要求 - DV证书只是确保这是该域的正确公钥。浏览器不显示法律实体。DV证书通常便宜(每年10美元)或免费 - 请参阅下面的加密和云彩部分。


扩展验证(EV)


EV证书会验证网站背后的法律组织。这是最可靠的证书类型,它是在CA检查控制域的法定实体后获得的。法律实体的检查结合如下:

  • 控制域名(如DV证书);
  • 政府业务记录,确保公司注册和活动;
  • 独立的业务目录,如Dunn和Bradstreet,Salesforce的connect.data.com,黄页等;
  • 验证电话;
  • 检查证书中的所有域名(EV证书明确禁止通配符)。

除封闭的挂锁标志外,EV HTTPS证书还显示经过验证的法律实体(通常是注册公司)的名称。某些设备(如iOS Safari)只会显示经过验证的法律实体,完全忽略该URL。单击标志将显示有关组织的详细信息,例如名称和街道地址。每年费用在150到300美元之间。


组织验证(OV)


像EV一样,OV证书验证网站背后的法律组织。但是,与EV不同,OV HTTPS证书不会在UI中显示经过验证的法定名称。因此,OV证书不太受欢迎,因为它们具有很高的验证要求,而不会向用户显示这些优点。价格在每年40到100美元之间。


域名覆盖链接数


曾经,HTTPS证书通常在CN域中包含单个域。之后,添加了“主题替代名称”(SAN)字段,以允许其他域由单个证书覆盖。现在,所有HTTPS证书都被创建为相等的:即使单域证书也将具有该单个域的SAN(并且www域的版本的第二个SAN )。然而,由于历史原因,许多证书供应商仍然出售单域和多域HTTPS证书。


单域

这是最常见的型号合格证,有效期为域名example.com和www.example.com。


多个域(UCC / SAN)

这种类型的证书,也称为统一通信证书(UCC)或主题备用名称(SAN)证书,可以覆盖域列表(达到一定限度)。它不限于单个域 - 你可以混合不同的域和子域。价格通常包括一定数量的域名(三到五个),可以选择包括更多(最高限额)的额外费用。建议使用它与相关网站,因为客户端检查任何网站的证书将看到主域名以及所有其他网站。


通配符


这种类型的证书的覆盖主域以及子域的数量不受限制(*.example.com) -例如,example.com,www.example.com,mail.example.com,ftp.example.com,等。该限制是它覆盖主域的唯一的子域。


下表列出了各种可用的HTTPS证书:



证书类别
域验证(DV)             组织验证(OV)

HTTPS                         HTTPS Vertified

                                     legal owner

单一域名 example.com, www.example.com
多个域

example.com,www.example.com,

mail.example.com,example.net,example.org,

等预定义的列表,达到一定的极限(通常为100)

通配符

*.example.com       N / A - 所有的名称必须明确地包含在证书                                     中,并由CA进行检查。

匹配任何子域


配置


HTTPS的四个组件需要加密:

  • 初始密钥交换

        本使用非对称(私钥和公钥)算法。

  • 身份证明(HTTPS证书,由认证机构颁发)

        它使用非对称(私钥和公钥)算法。

  • 实际的消息加密

        这使用对称(预共享密钥)算法。

  • 消息消化

        这些使用密码散列算法。


每个组件都具一组使用不同键尺寸的算法(其中一些已被弃用)。握手的一部分涉及客户端和服务器同意他们将使用哪种组合的方法 - 从大约十几个公钥(密钥交换)算法中选择一个,大约十几个对称密钥(密码)算法和从三个中挑选出一个(其他两个弃用)消息摘要(散列)算法,这给了我们数百种组合。


例如,设置ECDHE-RSA-AES256-GCM-SHA384意味着密钥将使用椭圆曲线Diffie-Hellman临时(ECDHE)密钥交换算法进行交换; CA使用Rivest-Shamir-Adleman(RSA)算法签署证书; 对称消息加密将使用高级加密标准(AES)密码,具有256位密钥和GCM操作模式; 并使用SHA安全散列算法,使用384位摘要验证消息完整性。(有一个综合的算法组合列表。)


所以有一些配置选择。


密码套房


决定使用的密码套件是兼容性和安全性之间的平衡:

  • 与旧浏览器的兼容性需要服务器支持较旧的密码套件。
  • 然而,许多较旧的密码套件不再被认为是安全的。


OpenSSL按照加密强度的顺序列出了支持的组合(见上文),顶部最安全,底部最弱。以这种方式设计,因为在客户端和服务器之间的初始握手期间,要使用的组合被协商,直到发现双方都支持的匹配。首先尝试最安全的组合是有道理的,只有在没有其他方式的情况下才逐渐降低安全性。


维基百科有针对TLS的所有组件的算法及其在不同版本的SSL和TLS中的支持的综合列表。


Mozilla SSL配置生成器是一个非常有用和强烈推荐的资源,建议在服务器上启用这些加密方法,稍后我们将使用实际的服务器配置。


关键类型


椭圆曲线密码学(ECC)证书比RSA证书更快,使用更少的CPU,这对移动客户端尤为重要。然而,在撰写本文时,还没有一些服务,如Amazon,CloudFront和Heroku,支持ECC证书。


一个256位的ECC密钥被认为是足够的。


Rivest Shamir Adleman(RSA)证书较慢,但与更多种类较旧的服务器兼容。RSA密钥较大,因此2048位RSA密钥被认为是最小的。4096以上的RSA证书可能会损害性能 - 他们也可能被一个2048位中间人签名,破坏了大量的额外安全性!


你可能已经注意到上述声明的流动性以及缺少任何数字 - 这是因为一台服务器上的重负载不在另一台服务器上。确定对性能的影响的最佳方法是通过你的真实网站和真实访问者来监控服务器上的负载。即使这样会随着时间的推移而改变。


程序


要获取HTTPS证书,请执行以下步骤:

  • 创建私钥和公钥对,并准备证书签名请求(CSR),包括有关组织和公钥的信息。
  • 联系认证机构,并根据企业社会责任请求HTTPS证书。
  • 获取签名的HTTPS证书并将其安装在你的Web服务器上。


存在一组包含公钥基础设施(PKI)的不同组件的文件:私钥和公钥,CSR和签名的HTTPS证书。为了使事情更复杂,不同的方使用不同的名称(和文件扩展名)来识别同一件事情。


首先,有两种流行的存储信息的格式--DER和PEM。第一个(DER)是二进制的,第二个(PEM)是一个base64编码(文本)DER文件。默认情况下,Windows直接使用DER格式,开放源代码世界(Linux和UNIX)使用PEM格式。有一些工具(OpenSSL)之间进行转换。


我们将在此过程中作为示例使用的文件如下:

  • example.com.key

    该PEM格式的文​​件包含私钥。扩展名.key不是标准,所以有些可能使       用它,而其他可能不使用它。只能由系统超级用户进行保护和访问。

  • example.com.pub

     该PEM格式的文​​件包含公钥。你实际上并不需要这个文件(它从来没        有显示出来),因为它可以从私有密钥生成。这里只是为了说明的目        的。

  • example.com.csr

    这是一个证书签名请求。包含组织信息的PEM格式的文​​件以及服务器       的公钥应发送到颁发HTTPS证书的证书颁发机构。

  • example.com.crt

     此HTTPS证书由证书颁发机构签署。它是一个PEM格式的文​​件,包括      服务器的公钥,组织信息,CA签名,有效期和到期日等。扩展名.crt        不是标准的; 其他常见的扩展包括.cert和.cer。


文件名(和扩展名)不是标准的; 他们可以是你喜欢的任何东西。我选择了这个命名约定,因为我认为它是说明性的,并且使得更明显哪个组件具有什么功能。只要在整个过程中引用命令和服务器配置文件中的相应密钥证书文件,就可以使用任何命名约定。


该私钥是有一定长度的随机生成的字符串(我们将使用2048位),它看起来像如下:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAm+036O2PlUQbKbSSs2ik6O6TYy6+Zsas5oAk3GioGLl1RW9N
i8kagqdnD69Et29m1vl5OIPsBoW3OWb1aBW5e3J0x9prXI1W/fpvuP9NmrHBUN4E
S17VliRpfVH3aHfPC8rKpv3GvHYOcfOmMN+HfBZlUeKJKs6c5WmSVdnZB0R4UAWu
Q30aHEBVqtrhgHqYDBokVe0/H4wmwZEIQTINWniCOFR5UphJf5nP8ljGbmPxNTnf
b/iHS/chjcjF7TGMG36e7EBoQijZEUQs5IBCeVefOnFLK5jLx+BC//X+FNzByDil
Tt+l28I/3ZN1ujhak73YFbWjjLR2tjtp+LQgNQIDAQABAoIBAEAO2KVM02wTKsWb
dZlXKEi5mrtofLhkbqvTgVE7fbOKnW8FJuqCl+2NMH31F1n03l765p4dNF4JmRhv
/+ne4vCgOPHR/cFsH4z/0d5CpHMlC7JZQ5JjR4QDOYNOpUG51smVamPoZjkOlyih
XGk/q72CxeU6F/gKIdLt6Dx03wBosIq9IAE8LwdMnioeuj18qaVg195OMeIOriIn
tpWP4eFya5rTpIFfIdHdIxyXsd6hF/LrRc9BMWTY1/uOLrpYjTf7chbdNaxhwH7k
buvKxBvCvmXmd6v/AeQQAXbUkdSnbTKDaB9B7IlUTcDJyPBJXvFS1IzzjN6vV+06
XBwHx5ECgYEAyRZLzwnA3bw8Ep9mDw8JHDQoGuQkFEMLqRdRRoZ+hxnBD9V9M0T6
HRiUFOizEVoXxf6zPtHm/T7cRD8AFqB+pA/Nv0ug6KpwUjA4Aihf5ADp0gem0DNw
YlVkCA6Bu7c9IUlE0hwF7RLB7YrryJVJit9AymmUTUUHCQTWW2yBhC8CgYEAxoHS
HGXthin5owOTNPwLwPfU2o7SybkDBKyW69uTi0KxAl3610DjyA/cV2mxIcFlPv1y
HualGd9eNoeCMBy/AUtjzI0K77yeRpjj321rj6k8c8bYWPHH539SiBXLWTY/WQ0w
pxfT3d/Z4QMh5d6p+p5f3UIrXESYQd+fAaG5tNsCgYEAksTdTB4YUT9EsWr6eN9G
jPlclFQUKV3OMvq77bfYvg8EJORz32nnDDmWS7SUjoOtemwutBlMeWbaKk25aMp3
5JNMXuV6apeMJ9Dd8GU7qBUqlIvVK31/96XPvzmnYzWZPqRVwO2HPcRFG3YcJmkg
JmZQyexJvCQ3wFNxiYUm+y0CgYBXQSMhFnCUg4jWbbDcHlnwRT+LnjHrN2arPE3O
eKLfGL6DotmqmjxFaStaRPv2MXMWgAMUsB8sQzG/WEsSaOBQaloAxJJlFIyhzXyE
bi1UZXhMD8BzQDu1dxLI/IN4wE6SDykumVuocEfuDxlsWDZxEgJjWD2E/iXK9seG
yRa+9wKBgEydVz+C1ECLI/dOWb20UC9nGQ+2dMa+3dsmvFwSJJatQv9NGaDUdxmU
hRVzWgogZ8dZ9oH8IY3U0owNRfO65VGe0sN00sQtMoweEQi0SN0J6FePiVCnl7pf
lvYBaemLrW2YI2B7zk5fTm6ng9BW/B1KfrH9Vm5wLQBchAN8Pjbu
-----END RSA PRIVATE KEY-----


保持私钥保密!这意味着通过非常有限的权限(600)保护它,不要向任何人透露。

它的对应 - 公钥 - 看起来像这样:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm+036O2PlUQbKbSSs2ik
6O6TYy6+Zsas5oAk3GioGLl1RW9Ni8kagqdnD69Et29m1vl5OIPsBoW3OWb1aBW5
e3J0x9prXI1W/fpvuP9NmrHBUN4ES17VliRpfVH3aHfPC8rKpv3GvHYOcfOmMN+H
fBZlUeKJKs6c5WmSVdnZB0R4UAWuQ30aHEBVqtrhgHqYDBokVe0/H4wmwZEIQTIN
WniCOFR5UphJf5nP8ljGbmPxNTnfb/iHS/chjcjF7TGMG36e7EBoQijZEUQs5IBC
eVefOnFLK5jLx+BC//X+FNzByDilTt+l28I/3ZN1ujhak73YFbWjjLR2tjtp+LQg
NQIDAQAB
-----END PUBLIC KEY-----
证书签名请求(CSR)如下所示:
-----BEGIN CERTIFICATE REQUEST-----
MIICzjCCAbYCAQAwgYgxFDASBgNVBAMMC2V4YW1wbGUuY29tMQswCQYDVQQLDAJJ
VDEPMA0GA1UECAwGTG9uZG9uMRIwEAYDVQQKDAlBQ01FIEluYy4xIDAeBgkqhkiG
9w0BCQEWEWFkbWluQGV4YW1wbGUuY29tMQswCQYDVQQGEwJHQjEPMA0GA1UEBwwG
TG9uZG9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm+036O2PlUQb
KbSSs2ik6O6TYy6+Zsas5oAk3GioGLl1RW9Ni8kagqdnD69Et29m1vl5OIPsBoW3
OWb1aBW5e3J0x9prXI1W/fpvuP9NmrHBUN4ES17VliRpfVH3aHfPC8rKpv3GvHYO
cfOmMN+HfBZlUeKJKs6c5WmSVdnZB0R4UAWuQ30aHEBVqtrhgHqYDBokVe0/H4wm
wZEIQTINWniCOFR5UphJf5nP8ljGbmPxNTnfb/iHS/chjcjF7TGMG36e7EBoQijZ
EUQs5IBCeVefOnFLK5jLx+BC//X+FNzByDilTt+l28I/3ZN1ujhak73YFbWjjLR2
tjtp+LQgNQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAGIQVhXfuWdINNfceNPm
CkAGv4yzpx88L34bhO1Dw4PYWnoS2f7ItuQA5zNk9EJhjkwK8gYspK7mPkvHDbFa
Um7lPSWsm3gjd3pU7dIaHxQ+0AW9lOw5ukiBlO4t3qgt+jTVZ3EhMbR0jDSyjTrY
kTgfuqQrGOQSmLb5XviEtCcN0rseWib3fKIl8DM69JiA2AALxyk7DCkS1BqLNChT
pnbgvtlUhc4yFXNCtwPGskXIvLsCn2LRy+qdsPM776kDLgD36hK0Wu14Lpsoa/p+
ZRuwKqTjdaV23o2aUMULyCRuITlghEEkRdJsaXadHXtNd5I5vDJOAAt46PIXcyEZ
aQY=
-----END CERTIFICATE REQUEST-----


这个特定的CSR包含服务器的公钥和关于ACME Inc.的详细信息,该公司位于英国伦敦,并拥有该域名example.com。

最后,签名的HTTPS证书如下所示:


-----BEGIN CERTIFICATE-----
MIIDjjCCAnYCCQCJdR6v1+W5RzANBgkqhkiG9w0BAQUFADCBiDEUMBIGA1UEAwwL
ZXhhbXBsZS5jb20xCzAJBgNVBAsMAklUMQ8wDQYDVQQIDAZMb25kb24xEjAQBgNV
BAoMCUFDTUUgSW5jLjEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5jb20x
CzAJBgNVBAYTAkdCMQ8wDQYDVQQHDAZMb25kb24wHhcNMTYwNDE5MTAzMjI1WhcN
MTcwNDE5MTAzMjI1WjCBiDEUMBIGA1UEAwwLZXhhbXBsZS5jb20xCzAJBgNVBAsM
AklUMQ8wDQYDVQQIDAZMb25kb24xEjAQBgNVBAoMCUFDTUUgSW5jLjEgMB4GCSqG
SIb3DQEJARYRYWRtaW5AZXhhbXBsZS5jb20xCzAJBgNVBAYTAkdCMQ8wDQYDVQQH
DAZMb25kb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCb7Tfo7Y+V
RBsptJKzaKTo7pNjLr5mxqzmgCTcaKgYuXVFb02LyRqCp2cPr0S3b2bW+Xk4g+wG
hbc5ZvVoFbl7cnTH2mtcjVb9+m+4/02ascFQ3gRLXtWWJGl9Ufdod88Lysqm/ca8
dg5x86Yw34d8FmVR4okqzpzlaZJV2dkHRHhQBa5DfRocQFWq2uGAepgMGiRV7T8f
jCbBkQhBMg1aeII4VHlSmEl/mc/yWMZuY/E1Od9v+IdL9yGNyMXtMYwbfp7sQGhC
KNkRRCzkgEJ5V586cUsrmMvH4EL/9f4U3MHIOKVO36Xbwj/dk3W6OFqTvdgVtaOM
tHa2O2n4tCA1AgMBAAEwDQYJKoZIhvcNAQEFBQADggEBABwwkE7wX5gmZMRYugSS
7peSx83Oac1ikLnUDMMOU8WmqxaLTTZQeuoq5W23xWQWgcTtfjP9vfV50jFzXwat
5Ch3OQUS53d06hX5EiVrmTyDgybPVlfbq5147MBEC0ePGxG6uV+Ed+oUYX4OM/bB
XiFa4z7eamG+Md2d/A1cB54R3LH6vECLuyJrF0+sCGJJAGumJGhjcOdpvUVt5gvD
FIgT9B04VJnaBatEgWbn9x50EP4j41PNFGx/A0CCLgbTs8kZCdhE4QFMxU9T+T9t
rXgaspIi7RA4xkSE7x7B8NbvSlgP79/qUe80Z7d8Oolva6dTZduByr0CejdfhLhi
mNU=
-----END CERTIFICATE-----


所有部件都相互连接,应相互匹配。最终证书是为了说明的目的而产生的 - 这是所谓的自签名证书,因为它没有被认可的认证机构签名。


该过程将以cPanel,Linux,FreeBSD和Windows的实际步骤进行说明。这是一个通用的过程,适用于各种证书。如果你有兴趣获得免费的DV证书,还有关于“加密和云计算 ”部分的其他步骤。


步骤1:创建私钥和证书签名请求(CSR)


在以下示例中,我们将使用2048位的RSA证书,因为它们具有广泛的兼容性。如果你的服务器提供商支持它(例如,如果你不使用Heroku或AWS),你可能更喜欢使用ECC。


CPANEL 

1.登录你的主机的cPanel。

2.向下滚动到“安全”部分,然后单击“SSL / TLS”。


3.你现在处于“SSL / TLS管理器”的主页中。单击“私钥(KEY)”创建一个新的私钥。

4.你将被重定向到页面“生成,粘贴或上传新的​​”私钥。“在”密钥大小“下拉列表中选择”2048位“,然后单击”生成“。



5.如果新的密钥将要生成,你会得到一个确认页面

6.如果你回到“私钥”页面,你会看到你的新钥匙已经列出来了:

7.返回到“SSL / TLS管理器”家。单击“证书签名请求(CSR)”以创建新的证书请求。

8.你现在将看到“生成服务请求”表单。选择先前创建的私钥并填写字段。回答所有的问题(他们将在您的签名证书中公开),特别注意“域”部分,该部分应与您要求HTTPS证书的域名完全相符。仅包含顶级域(example.com); CA通常也会添加www子域(www.example.com)。完成后,单击“生成”按钮。


9.新的CSR将会生成,你将会得到一个确认页面




10.如果你回到“认证签名请求”页,你将会看到你的新CSR已经列出了:

LINUX ,FREESD


确保OpenSSL已安装。你可以使用以下方式检查:

openssl version

如果它不存在,请打开命令行并将其安装到你的平台中:

  • Debian,Ubuntu和clones
sudo apt-get install openssl
  • Red Hat,CentOS和clones
sudo yum install openssl
  • FreeBSD
make -C /usr/ports/security/openssl install clean

然后,使用单个命令生成私钥和CSR:

openssl req -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr

私钥将被生成,你将被询问一些CSR信息:

Generating a 2048 bit RSA private key
........................+++
................................................................+++
writing new private key to 'example.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.', the field will be left blank.

回答所有问题(他们将在你的签名证书中公开),特别注意“通用名称”部分(例如,服务器FQDN或您的名称),它们应与您要求的域名完全匹配HTTPS证书。仅包含顶级域(example.com),CA通常也会添加www子域(即www.example.com):

Country Name (2 letter code) [AU]:GB
State or Province Name (full name) [Some-State]:London
Locality Name (eg, city) []:London
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ACME Inc.
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:admin@example.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:


WINDOWS 上的INTERNET信息服务器(IIS)

1.打开“开始”→“管理工具”→“Internet信息服务(IIS)管理器”。单击服务器名称。双击中间列中的“服务器证书”:



2.单击右侧的“创建证书请求”。



3.输入你的组织的详细信息,特别注意“通用

名称”,这应该与您的域名相符。点击下一步。”



4.保留默认的“加密服务提供商”。将“位长度”设置为2048。点击下一步。”



5.选择一个地方来保存生成的CSR,然后单击完成


步骤2:获取HTTPS证书


为了获得你的网站证书,首先从HTTPS证书提供商处购买所选类型(DV,OV,EV,单站点,多站点,通配符 - 见上文)的HTTPS证书信用证。过程完成后,你将必须提供证书签名请求,这将为你选择的域支出购买的信用额度。你将被要求提供(即粘贴在一个字段中或上传)整个CSR文本,包括-----BEGIN CERTIFICATE REQUEST-----和-----END CERTIFICATE REQUEST-----行。如果你想要获得EV或OV证书,则需要提供证书的法律实体 - 你也可能会被要求提供其他文件以确认你代表该公司。然后,证书注册商将验证你的请求(和任何支持文件)并签发签名的HTTPS证书。


获取HTTPS证书


你的主机提供商或HTTPS注册商可能具有不同的产品和注册过程,但通用逻辑应该类似。

  • 查找HTTPS证书供应商。
  • 选择一种类型的证书(DV,OV,EV,单站点,多站点,通配符),然后单击“添加到购物车”。指定你首选的付款方式并完成付款。
  • 为你的域激活新的HTTPS证书。你可以粘贴或上传证书签名请求。系统将从CSR中提取证书详细信息。
  • 你将被要求选择“域控制验证”的方法 - 无论是通过电子邮件,上传HTML文件(基于HTTP)还是将TXT记录添加到域区域文件(基于DNS)中。按照你选择的DCV方法的说明进行验证。
  • 等待几分钟,直到执行验证并发出HTTPS证书。下载签名的HTTPS证书。


自签名证书


也可以自己签署证书,而不是让证书颁发机构颁发。这对于测试目的是有好处的,因为它将与其他任何证书一样好,但不会被浏览器信任,这将引发安全警告 。如果用户信任网站,他们可能会在浏览器中添加一个异常,它将存储证书并将其信任以供将来访问。


上面的示例证书是一个自签名证书 - 你可以将其用于域名example.com,它将在其有效期内工作。


你可以在具有OpenSSL的任何平台上创建自签名证书:

openssl x509 -signkey example.com.key -in example.com.csr -req -days 365 -out example.com.crt

一旦证书可用,你将不得不将其安装在你的服务器上。如果你使用来自同一提供商的托管和HTTPS注册服务(许多托管服务提供商也销售HTTPS证书),则可能会有一个自动化过程来安装并启用你新获得的网站的HTTPS证书。如果你在其他地方托管你的网站,则需要下载证书并配置你的服务器才能使用。


步骤3:为您的网站链接安装HTTPS证书


CPANEL 


1.返回到“SSL / TLS管理器”家。单击“证书(CRT)”导入新证书。



2.你将被重定向到一个页面以“粘贴,上传或生成”一个新的“证书”。粘贴从HTTPS注册商收到的证书文件的内容,或使用“浏览”按钮上传。


3。当你粘贴HTTPS证书的内容时,将对其进行解析,并将纯文本值提供给你进行确认。查看内容并点击“保存证书”按钮。


4.新的HTTPS证书将被保存,你将得到一个确认屏幕:



5.如果你回到“证书(CRT)”的家,你将看到你的新的HTTPS证书列出:



6.返回到“SSL / TLS管理器”家。点击“安装和管理你的网站的SSL(HTTPS)”将新证书分配到现有网站。


7.你将看到“安装SSL网站”表单。单击“浏览证书”按钮并选择你的HTTPS证书。从下拉列表中选择你的网站域(如果未自动选择),并验证“证书”和“私钥”的字段是否已填充。

 


测试看看你可以访问你的网站在地址https://www.example.com。如果一切正常,您最有可能希望将HTTP流量永久重定向到HTTPS。为此,您必须.htaccess在网站的根文件夹中包含几行代码(如果您使用的是Apache Web服务器)

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


如果.htaccess文件已经存在,那么只需在现有指令之后粘贴RewriteCond和输入RewriteRule行RewriteEngine On。


LINUX,FREEBSD LINK


将生成的私钥(example.com.key),证书签名请求(example.com.csr)和有效的HTTPS证书(example.com.crt)放在适当的位置:

  • Debian,Ubuntu和clones,FreeBSD
cp example.com.crt /etc/ssl/certs/
cp example.com.key /etc/ssl/private/
cp example.com.csr /etc/ssl/private/
  • Red Hat,CentOS和clones
cp example.com.crt /etc/pki/tls/certs/
cp example.com.key /etc/pki/tls/private/
cp example.com.csr /etc/pki/tls/private/
restorecon -RvF /etc/pki


这些文件应该由root拥有,并由权限设置保护600。

  • Debian,Ubuntu和clones
chown -R root. /etc/ssl/certs /etc/ssl/private
chmod -R 0600 /etc/ssl/certs /etc/ssl/private
  • Red Hat,CentOS和clones
chown -R root. /etc/pki/tls/certs /etc/pki/tls/private
chmod -R 0600 /etc/pki/tls/certs /etc/pki/tls/private
  • FreeBSD
chown -R root:wheel /etc/ssl/certs /etc/ssl/private
chmod -R 0600 /etc/ssl/certs /etc/ssl/private


APACHE 

要启用你的网站的HTTPS版本,你应该:

  • 确保你的服务器上安装了mod_ssl
  • 将接收的HTTPS证书(.crt)文件上传到你的服务器,
  • 编辑Apache服务器配置文件。

从检查开始mod_ssl。根据您的操作系统,任何一个应该工作:

apache2 -M | grep ssl
or
httpd -M | grep ssl


如果mod_ssl安装,你应该得到这个...

ssl_module (shared)
Syntax OK

...或类似的东西

如果不存在或未启用,请尝试:

  • Debian,Ubuntu和clones
sudo a2enmod ssl
sudo service apache2 restart
  • Red Hat,CentOS和clones
sudo yum install mod_ssl
sudo service httpd restart
  • FreeBSD(选择SSL选项)
make -C /usr/ports/www/apache24 config install clean
apachectl restart

编辑Apache配置文件(httpd.conf):

  • Debian,Ubuntu
/etc/apache2/apache2.conf
  • Red Hat,CentOS
/etc/httpd/conf/httpd.conf
  • FreeBSD
/usr/local/etc/apache2x/httpd.conf

Listen 80
Listen 443
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect 301 / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
Redirect 301 / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
...
SSLEngine on
SSLCertificateFile/path/to/signed_certificate_followed_by_intermediate_certs
SSLCertificateKeyFile /path/to/private/key
# Uncomment the following directive when using client certificate authentication
#SSLCACertificateFile  /path/to/ca_certs_for_client_authentication
# HSTS (mod_headers is required) (15768000 seconds = 6 months)
Header always set Strict-Transport-Security "max-age=15768000"
...
</VirtualHost>
# intermediate configuration, tweak to your needs
SSLProtocol all -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder on
SSLCompression off
SSLSessionTickets off
# OCSP Stapling, only in httpd 2.3.3 and later
SSLUseStapling on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache shmcb:/var/run/ocsp(128000)


此配置是使用前面提到的Mozilla SSL配置生成器生成的。检查它以获取最新的配置。确保编辑证书和私钥的路径。提供的配置是使用中间设置生成的 - 读取每个设置的限制和支持的浏览器配置,以确定哪个最适合你。



NGINX 


编辑nginx配置文件(nginx.conf):

  • Debian,Ubuntu,Red Hat,CentOS
/etc/nginx/nginx.conf
  • FreeBSD
/usr/local/etc/nginx/nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
# Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /path/to/dhparam.pem;
# intermediate configuration. tweak to your needs.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver <IP DNS resolver>;
....
}


此配置是使用前面提到的Mozilla SSL配置生成器生成的。检查它以获取最新的配置。确保编辑证书和私钥的路径。提供的配置是使用中间设置生成的 - 读取每个设置的限制和支持的浏览器配置,以确定哪个最适合你。


生成器自动生成用于处理从HTTP转换为HTTPS的重定向代码,并启用HTTP / 2开箱即用!


WINDOWS 上的INTERNET信息服务器(IIS)


1.打开“开始”→“管理工具”→“Internet信息服务(IIS)管理器”。单击服务器名称。双击中间列中的“服务器证书”:

 


2.单击右侧的“完整证书请求”。




3.选择你从CA获得的签名证书文件example.com.crt。在“友好名称”字段中输入一些名称,以便能够稍后区分证书。将新证书放在“个人”证书存储(IIS 8+)中。点击“确定”。




4.如果进程正常,你应该看到“服务器证书”下列出的证书。



5.展开服务器名称。在“网站”下,选择要为其分配HTTPS证书的网站。点击右边的“绑定”。



6.在“站点绑定”窗口中,单击“添加”按钮。



7.在新窗口中,选择:

  • “Type”: “https”
  • “IP address”: “All Unassigned”
  • “Port”: “443”


在“SSL证书”字段中,通过其友好名称选择已安装的HTTPS证书。点击“确定”。


8.你现在应该为此网站安装HTTP和HTTPS。



混合内容警告


你可能会在地址栏旁边收到一个警告信号,并显示一条消息,如“连接不安全!本页的部分内容不安全(如图像)。“这并不意味着您的安装是错误的; 只需确保所有资源(图像,样式表,脚本等)的链接(无论是本地还是从远程服务器)都不能以http://开始。所有资源都应指向相对于根的路径(/images/image.png,/styles/style.css等)或相对于当前文档(../images/image.png)的路径,或者它们应该是以开头的完整URL https://,例如<script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>。


这些提示应该可以消除混合内容警告,而你的浏览器应显示封闭的挂锁,而不会有感叹号。


测试你的服务器


配置好服务器并使网站在HTTPS上运行后,我强烈建议你使用Qualys SSL Server测试检查其安全配置。这将对你的网站进行扫描,包括对其配置的全面评估,可能的弱点和建议。按照这方面的建议,进一步改善你的服务器的安全配置。


续订


你的证书在一段时间内有效,通常为一年。不要等待在最后一刻更新 - 你的注册商将在更新日期接近时开始发送电子邮件。一收到你的第一个提醒,请发出新的证书。过程几乎相同:创建新的证书签名请求,获取新的HTTPS证书,并将其安装在你的服务器上。证书的有效期将在签署时开始运行,而到期日将在当前证书到期后一年设定。因此,你的旧证书和新证书都将有效,然后是旧证书到期后的全新一年。在重叠期间,你将能够确保新证书正常工作,在旧的证书过期之前,让你的网站不会出现崩溃的情况


撤销


如果你的服务器遭到入侵,或者你认为有人可能访问你的私钥,则应立即撤销当前的HTTPS证书。不同的注册商具有不同的过程,但通常归结为在受侵害的证书在你的注册商的特殊数据库中标记为不活动,然后发出新的HTTPS证书。当然,尽快撤销目前的证书,所以没有人可以冒充你,只有在调查和解决了安全漏洞的原因后才能获得新的证书。请向你的注册服务商咨询。


让我们加密


引用自Let's Encrypt网站:

Let's Encrypt是一个免费的,自动化的,开放的证书颁发机构(CA),为公众的利益服务。我们加密是由互联网安全研究组织(ISRG)提供的服务。


让我们加密的关键原则是:

  • 免费
    拥有域名的任何人都可以使用我们的加密来获取零成本的受信任的证书。
  • 自动化
    在Web服务器上运行的自动软件可以与Let's Encrypt进行交互,以便无痛地获取证书,将其安全地配置使用,并自动处理续订。
  • 安全
    Let's Encrypt将作为推动TLS最佳实践的平台,无论是在CA侧还是通过帮助网站运营商正确保护其服务器。
  • 透明
    所有发出或撤销的证书将被公开记录,供任何人查阅。
  • 开放
    自动发行和更新协议将作为其他人可以采用的开放标准发布。
  • 合作伙伴
    非常喜欢底层的互联网协议本身,让我们加密是为了使社区受益匪浅,超越了任何一个组织的控制。

要利用Let's Encrypt,正确设置你的主机帐户或服务器。让我们加密提供需要定期更新的短期证书,以保持HTTPS网站的运行。


如何工作

Let's Encrypt和其他CA之间的操作模式有一些显着的差异。按照前三点,主要是:

  • 免费

Let’s Encrypt HTTPS证书在你网站的整个使用寿命内完全免费。

  • 自动

Let’s Encrypt HTTPS证书有效期为90天,不同于常规的HTTPS证书,有效期为一年。鼓励人们自动更新证书; 例如,服务器的管理员将设置一个专用的软件服务(或将定期地从cron调用软件)来管理所有托管域的初始域验证和后续更新 - 设置和忘记样式。

  • 安全

让我们加密HTTPS证书不会对安全性造成任何影响,导致与旧版和更异国情调的平台的某些不兼容性。检查兼容性页面以确定是否正确切断不兼容的平台。


限制

Let’s Encrypt 只提供DV证书。OV和EV不受支持,目前还没有计划支持它们。提供单域和多域HTTPS证书,但目前没有通配符。有关详细信息,请参阅Let’s Encrypt 常见问题


Let’s Encrypt的自动化操作模式强制执行一些使用限制,以保护基础架构免受有意和无意的滥用。速率限制足够高,不会影响具有数百个域的常规用户。但是,如果你以非常大的规模管理HTTPS证书,则可能需要检查它们。


不支持旧版和异国客户端(Windows XP SP3之前)。检查兼容性页面的详细信息。


在实践中使用Let’s EncryptHTTPS证书


CPANEL 

登录你的主机的cPanel

向下滚动到“安全”部分,然后单击“Let’s EncryptcPanel”。



3.你现在在“我们加密cPanel”部分。检查两个域名(example.com和www.example.com),然后单击“发布多个”。


4.你将被带到确认屏幕。你的顶级(即非www)域名将被、选为主要用户,你的www域名作为别名,将被放置在HTTPS证书的“主题名称”(SAN)记录中。点击“问题”继续。请耐心等待,不要刷新页面,因为初始验证可能需要更长时间 - 大约一两分钟。


5.如果进程成功完成,你将看到一条确认消息。点击“返回”查看已安装的HTTPS证书。


6.你将看到你的域名列在“Your domains with Let’s Encrypt certificates.”下。你可以检查证书的详细信息,并验证网站是否打开了https://。




LINUX,FREEBSD,其他


在你的服务器上设置让我们加密的最简单的方法是使用Certbot。只需选择你的Web服务器和操作系统并按照说明进行操作。



WINDOWS 链接上的INTERNET信息服务器


目前Windows上没有IIS的官方客户端,但还有解决方法。

有几个项目为创建一个本机Windows客户端:

  • ACMESharp(PowerShell)是第一个编写Windows客户端的工具。
  • letsencrypt-win-simple(对于命令行)似乎最容易使用。
  • Certify在ACMESharp之上提供了一个GUI,但仍然是alpha。


Cloudflare


Cloudflare是一种提供内容分发网络(CDN)、网站安全性和防止分布式拒绝服务(DDoS)攻击的服务。它具有所有订阅计划的免费HTTPS证书,包括免费的 - 一个共享的DV Cloudflare通用SSL证书。为了拥有唯一的HTTPS证书,你需要升级到业务计划。

要使用,只需创建一个帐户,设置你的网站,并访问“加密”部分。


CertSimple 


CertSimple是仅限EV的HTTPS证书供应商。通过提供更快,更简单的组织验证过程,这是一个类似于我们加密在DV HTTPS证书市场中进行的EV HTTPS证书市场,这是一个缓慢而繁琐的例程。这里有它的优点:

  • 简化应用程序

无软件安装或命令行问题。实时验证,付款之前检查大部分详细信息。

  • 快速验证时间

平均3小时,行业标准7到10天。

  • 证书可以终身免费重新签发

轻松添加域名或修复丢失的私钥。


你可以在Troy Hunt的博客上阅读该过程,并进行深入的讨论。


单个IP地址链路上的多个HTTPS网站


由于握手过程的性质,具有单个IP地址的虚拟主机对于TLS是一个问题。虚拟主机通过让客户端将该域名作为HTTP请求头的一部分来包含域名,但是当使用HTTPS时,TLS握手发生在发送HTTP头之前 - 安全通道应该被初始化并且完全正常,文本HTTP,包括标题。因此,服务器不知道哪个HTTPS证书可以显示给连接的客户端,因此它会在其配置文件中显示第一个HTTPS证书,当然这只能在第一个启用TLS的网站上正常工作。


有几种解决方法:为每个启用TLS的域拥有唯一的IP,或将所有域都放在单个证书中。两者都是不切实际的 - 现在IPv4地址空间已经用尽,并且拥有一个大的HTTPS证书意味着如果要将一个网站添加到此服务器,则需要重新发出整个多域证书。


引入TLS协议的扩展名为服务器名称指示(SNI),以克服此限制。服务器和客户端都应该支持它,虽然SNI支持现在广泛可用,但如果与所有可能的客户端兼容,则仍然不能100%防弹。


你可以在相应的文档中阅读有关运行ApachenginxIIS(8+)的 SNI的更多信息。



via  smashingmagazine.com



D∬G   设计和代码其实都是一种艺术修行~~

设计灵感来自于梦境和现实的夹层中 ~~
     扫一扫立刻加入iGeekBar会员QQ群(545980198)
    和更多iG客会员交流分享吧~