⑴ 如何创建一个自签名的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 []:[email protected]
第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证书。
⑵ 脚本自动续期ssl证书 Let’s Encrypt
Let’s Encrypt: https://letsencrypt.org/
Let’s Encrypt is a free, automated, and open Certificate Authority.
用 acme.sh申请来自动续期ssl证书
acme说明: https://github.com/Neilpang/acme.sh/wiki/说明
https://www.cnblogs.com/esofar/p/9291685.html
前端的Upgrade请求发送给后端服务器,Upgrade和Connection的头信息必须被显式的设置。一旦我们完成以上设置,NGINX就可以处理WebSocket连接了。查看配置在哪里 ps -ef|grep nginx
多个域名的话,配多个nginx.conf配置。
OK 完成,就是这么简单
通配符证书申请
用certbot来自动续期ssl证书
https://certbot.eff.org/lets-encrypt/centosrhel7-nginx
Let’s Encrypt 是一个免费 SSL 证书发行项目,自动化发行证书,证书有 90 天的有效期。于是有了另外一个项目可以自动安装,自动续期。
直接上网站
选择 WEB 服务器版本,系统版本,然后执行脚本即可。
执行完成之后执行 certbot run 跟着步骤就行了。
在 crontab -e 编辑文件
定时每天检查,如果要过期则自动延期。
⑶ 如何创建一个自签名的ssl证书
借助openssl就可以创建,很简单。
自签名SSL证书存在很大的安全隐患和风险,不建议大家安装。具体风险如下:
第一、被“有心者”利用
其实“有心者”指的就是黑客。自签名SSL证书你自己可以签发,那么同样别人也可以签发。黑客正好利用其随意签发性,分分钟就能伪造出一张一模一样的自签证书来安装在钓鱼网站上,让访客们分不清孰真孰假。
第二、浏览器会弹出警告,易遭受攻击
前面有提到自签名SSL证书是不受浏览器信任的,即使网站安装了自签名SSL证书,当用户访问时浏览器还是会持续弹出警告,让用户体验度大大降低。因它不是由CA进行验证签发的,所以CA是无法识别签名者并且不会信任它,因此私钥也形同虚设,网站的安全性会大大降低,从而给攻击者可乘之机。
第三、安装容易,吊销难
自签名SSL证书是没有可访问的吊销列表的,所以它不具备让浏览器实时查验证书的状态,一旦证书丢失或者被盗而无法吊销,就很有可能被用于非法用途从而让用户蒙受损失。同时,浏览器还会发出“吊销列表不可用,是否继续?”的警告,不仅降低了网页的浏览速度,还大大降低了访问者对网站的信任度。
第四、超长有效期,时间越长越容易被破解
自签名SSL证书的有效期特别长,短则几年,长则几十年,想签发多少年就多少年。而由受信任的CA机构签发的SSL证书有效期不会超过2年,因为时间越长,就越有可能被黑客破解。所以超长有效期是它的一个弊端。
⑷ 浏览器提示ssl证书无效,怎么解决
SSL证书错误一般有四种情况:
1、SSL证书过期
按照安全证书签发的国际标准,SSL证书最长有效期为2年,一般购买证书默认的是一年,所以大家一定要注意自己的SSL证书时间。
2、SSL证书安装配置错误
SSL证书安装非常的繁杂,一般人很难安装。
3、SSL证书不受信任
目前市场上存在一些SSL证书,没有通过全球信任,建议选择全球信任的SSL证书。
4、SSL证书生效时间与电脑时间有冲突
这种情况的话,可以通过设置电脑系统时间来解决。
⑸ 怎样使用SHELL脚本在NGINX上一键部署SSL
iftest“$1”="delete"thenfi第一个参数用$1来取得。
⑹ python3下检查ssl证书过期时间(续)
我之前写过一个脚本用于实现检查ssl证书并邮件通知的功能:
python3下检查ssl证书过期时间并邮件通知
但是在使用过程中,我发现了一个问题: 证书过期时间不准 。这种说法可能不是很准确,确切地说是:如果在一级域名下配置了子域名证书,且不同级证书过期时间不同,则之前的脚本可能会检查到一级域名的过期时间,并不会返回子域名证书过期时间,如此便会出现过期时间不准的情况。
于是我在网上找到一个可用的脚本(python3.6.5下亲测有效),链接如下:
https://gist.github.com/gdamjan/?tdsourcetag=s_pctim_aiomsg
脚本具体内容我这里也贴一下,可按实际需求进行修改,使用前务必注意安装相关模块:
⑺ SSL证书无效怎么解决
SSL证书无效一般存在以下几种原因:
1、SSL证书过期
按照安全证书签发的国际标准,SSL证书最长有效期为2年,一般购买证书默认的是一年,所以大家一定要注意自己的SSL证书时间。
2、SSL证书安装配置错误
SSL证书安装非常的繁杂,一般人很难安装,可联系证书提供商安装。
3、SSL证书不受信任
目前市场上存在一些SSL证书,没有通过全球信任,建议购买全球信任的SSL证书,比如Symantec、Geotrust、Comodo以及RapidSSL等知名CA机构。
4、SSL证书生效时间与电脑时间有冲突
这种情况的话,可以通过设置电脑系统时间来解决
步骤一:打开电脑控制面板