云服务器免费试用

ssl签名证书(SSl证书)

服务器知识 0 689

本文目录:

  • 1、什么是自签名SSL证书?
  • 2、❖ 自签名 SSL 证书(self-signed SSL certificate)
  • 3、如何创建一个自签名的SSL证书

什么是自签名SSL证书?

自己生成的SSL证书,不是CA机构颁发的SSL证书,称之为自签名证书。

解释原因:

 受信任的SSL证书:会被浏览器信任认可,安全加密服务与安全扫描相关CA配套服务。

自签署的SSL证书:不会被浏览器信任,数据被泄漏级劫持安全漏洞安全风险较高。

自签名主要风险:

浏览器的地址栏会提示风险不安全网站。

小程序或APP无法应用与支持。

无法实现信用与接口交易行为。

网页会被劫持,被强制插入广告或跳转到其它网页。

用户数据明文传输,隐私信息被中间劫持。

极容易被劫持和钓鱼攻击。

自签名安全隐患:

自签证书最容易受到SSL中间人攻击

自签证书支持不安全的SSL通信重新协商机制

自签证书支持非常不安全的SSL V2.0协议

自签证书没有可访问的吊销列表

自签证书使用不安全的1024位非对称密钥对

自签证书证书有效期太长

自签证书普遍存在严重的安全漏洞,极易受到攻击

解决方法:Gworg申请可信SSL证书。

❖ 自签名 SSL 证书(self-signed SSL certificate)

自签名的SSL证书制作极其简单,几句openssl命令即可生成一个密钥和证书。但是:

自签名证书在网络上是不可信的,但如果只是自己家里、局域网内测试,是没有问题的。因为现在很多应用全都强制要求是https,所以自己电脑、家里服务器也都必须装配ssl证书。不愿意花钱买第三方证书,就自己本机制作一个自签名证书,也是可以的。

参考:如何在Linux中创建SSL证书签名请求(CSR)

参考:创建并部署自签名的 SSL 证书到 Nginx

制作前须知:

在本机创建一个自签名(自己给自己签名)的SSL证书,都是用 openssl 命令。一般Mac/Ubuntu等都是默认装配的,安装的话也是类似 sudo apt-get install openssl ,很简单。

生成证书分为这四步:

生成证书:

此时 ~/.ssl/ 文件夹下只剩下两个文件,即私钥-公钥(证书)对:

然后就可以将两个文件应用到HTTPS网络连接了。

CSR请求文件的互动过程太慢,每次手输比较麻烦,一般会用 *.cnf 配置文件来自动完成所需要输入的个人信息等内容。

比如可以建立一个 ~/.ssl/CSR-Config.cnf ,内容格式如下:

生成CSR请求文件时候,就可以用 -config 参数引用这个配置文件而不用进入交互环节了,命令如下:

另外,由于上面是指定的域名为 ,随便写的。为了让本地能正常访问局域网内的服务器,需要在本地的 /etc/hosts 中将 指定为一个ip地址,如 192.168.1.101

无论如何,自签名证书都是不会被自动信任的。

所以服务器的证书,必须在每台客户端设备上手动导入或信任才行。

Chrome信任自签名证书:

打开: chrome://flags/#allow-insecure-localhost ,然后enable本地不安全证书。

Mac本机信任自签名证书:

从Chrome的红色警告图标上,直接拖拽到桌面,就把证书保存到桌面了。

然后双击,启动证书管理器,打开证书,点击上面有一个 Trust ,选择 Always trust 即可。

iOS信任自签名证书:

在Safari的地址栏,点击

因为自签名证书无论如何都不被信任,很麻烦。所以干脆用免费申请到的公网证书来局域网用,然后就能被Chrome完全认可。

方法就是,把第三方证书配置到nginx等服务器上。然后修改本地的 /etc/hosts 文件,将局域网内的ip映射为第三方证书所对应的网站,如 192.168.1.101 music.spotify.com 。这样的话,就完全没有报警提示了。

但是,也需要每台客户端都修改hosts才行。(iOS不能改)

所有客户端都改还是比较麻烦的,如果可以配置路由器的话,直接修改路由器的hosts,或者路由器上的转发,就能达到所有局域网内客户端都能访问了。

但是缺点是,局域网上配置的映射后,就不能访问那个真实网址 music.spotify.com 听歌了。

如何创建一个自签名的SSL证书

创建自签名不会被浏览器信任,当然起不到SSL证书真正的加密,很随意的被模仿或复制。

建议您淘宝:Gworg 获取可信SSL证书。

创建自签名证书的步骤

注意:以下步骤仅用于配置内部使用或测试需要的SSL证书。

第1步:生成私钥

使用openssl工具生成一个RSA私钥

$ openssl genrsa -des3 -out server.key 2048

说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。

注意:生成私钥,需要提供一个至少4位的密码。

第2步:生成CSR(证书签名请求)

生成私钥之后,便可以创建csr文件了。

此时可以有两种选择。理想情况下,可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书(很贵)。另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名,具体操作如下:

$ openssl req -new -key server.key -out server.csr

说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。

Country Name (2 letter code) [AU]:CN

State or Province Name (full name) [Some-State]:Beijing

Locality Name (eg, city) []:Beijing

Organization Name (eg, company) [Internet Widgits Pty Ltd]:joyios

Organizational Unit Name (eg, section) []:info technology

Common Name (e.g. server FQDN or YOUR name) []:demo.joyios.com

Email Address []:liufan@joyios.com

第3步:删除私钥中的密码

在第1步创建私钥的过程中,由于必须要指定一个密码。而这个密码会带来一个副作用,那就是在每次Apache启动Web服务器时,都会要求输入密码,这显然非常不方便。要删除私钥中的密码,操作如下:

cp server.key server.key.org

openssl rsa -in server.key.org -out server.key

第4步:生成自签名证书

如果你不想花钱让CA签名,或者只是测试SSL的具体实现。那么,现在便可以着手生成一个自签名的证书了。

$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

说明:crt上有证书持有人的信息,持有人的公钥,以及签署者的签名等信息。当用户安装了证书之后,便意味着信任了这份证书,同时拥有了其中的公钥。证书上会说明用途,例如服务器认证,客户端认证,或者签署其他证书。当系统收到一份新的证书的时候,证书会说明,是由谁签署的。如果这个签署者确实可以签署其他证书,并且收到证书上的签名和签署者的公钥可以对上的时候,系统就自动信任新的证书。

第5步:安装私钥和证书

将私钥和证书文件复制到Apache的配置目录下即可,在Mac 10.10系统中,复制到/etc/apache2/目录中即可。

需要注意的是,在使用自签名证书时,浏览器会提示证书不受信任,如果你是对外网站使用,建议还是去CA机构申请可信的SSL证书,现在证书也很便宜,Gworg SSL证书可以淘宝获取。

【ssl签名证书】的内容来源于互联网,如引用不当,请联系我们修改。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ssl签名证书(SSl证书)
本文地址: https://solustack.com/28632.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。