2

在线免费申请 SSL证书

 1 year ago
source link: https://uzbox.com/tech/linux/ssl.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
首页技术宅Linux在线免费申请 SSL证书

在线免费申请 SSL证书

在Linux服务器上申请免费的 SSL证书

无论是制作什么类型的网站,第一步都需要申请 SSL证书 ,如果没有有效的域名证书,就只能以80端口的HTTP方式访问,现在主流的网站访问方式都是HTTPS访问,申请SSL域名证书势在必行!下面介绍如何申请域名证书,以及几种不同的方式申请域名证书。

首先了解一下什么是 TSL/ SSL

免费申请 SSL证书 SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。(顺便插一句,网景公司不光发明了 SSL,还发明了很多 Web 的基础设施——比如“CSS 样式表”和“JS 脚本”)
为啥要发明 SSL 这个协议捏?因为原先互联网上使用的 HTTP 协议是明文的,存在很多缺点——比如传输内容会被偷窥(嗅探)和篡改。发明 SSL 协议,就是为了解决这些问题。
到了1999年,SSL 因为应用广泛,已经成为互联网上的事实标准。IETF 就在那年把 SSL 标准化。标准化之后的名称改为 TLS(是“Transport Layer Security”的缩写),中文叫做“传输层安全协议”。
很多相关的文章都把这两者并列称呼(SSL/TLS),因为这两者可以视作同一个东西的不同阶段。如何让域名支持TSL?简单点说就是申请域名的SSL/TSL证书!
申请SSL/TSL证书,请参考:

Linux服务器免费申请 SSL证书

免费申请 TSL/ SSL证书

SSL证书 有两种,一种是ECC 证书(内置公钥是 ECDSA 公钥),一种是RSA 证书(内置 RSA 公钥)。简单来说,同等长度 ECC 比 RSA 更安全,也就是说在具有同样安全性的情况下,ECC 的密钥长度比 RSA 短得多(加密解密会更快)。但问题是 ECC 的兼容性会差一些,Android 4.x 以下和 Windows XP 不支持。只要您的设备不是非常老的老古董,强烈建议使用 ECC 证书。
下面使用 acme.sh 脚本,在Linux服务器上申请 TSL/ SSL证书 的方法:

curl https://get.acme.sh | sh
curl https://get.acme.sh | sh
在线免费申请 SSL证书

提示需要先安装SOCAT,安装socat后重新启动服务器再运行申请证书的脚本,Centos8下提示80端口被占用,卸载SOCAT后申请证书又提示需要安装SOCAT,死循环!reboot解决问题!

dnf -y install socat
reboot
dnf -y install socat
reboot
在线免费申请 SSL证书

下面生成证书,如果你的服务器上已经安装了nginx或者apache等web服务器的话,你需要暂时关闭。申请证书期间会占用80端口,请确保你服务器上的80端口没有被占用。
关于端口方面的几个小命令:

netstat -tln #查看服务器上端口使用情况。
netstat -tln | grep 80 #查看80端口是否被占用,输入命令如果命令行没反应,则是端口没有被占用,如果被占用会显示对应的端口
lsof -i :80 #查看端口属于哪个程序?端口被哪个进程占用
kill -9 进程数 #杀掉占用端口的进程
netstat -tln #查看服务器上端口使用情况。
netstat -tln | grep 80 #查看80端口是否被占用,输入命令如果命令行没反应,则是端口没有被占用,如果被占用会显示对应的端口
lsof -i :80 #查看端口属于哪个程序?端口被哪个进程占用
kill -9 进程数 #杀掉占用端口的进程

下面开始申请SSL证书,如果出错的话,可以在后面增加--debug参数,查看详细错误。

acme.sh --issue -d gogobox.tk --standalone -k ec-256
acme.sh --issue -d gogobox.tk --standalone -k ec-256

没有发生什么意外的话,TSL/SSL证书已经生成成功了!

在线免费申请 SSL证书

TSL/SSL免费证书的有效期是90天,90天之内需要更新证书。脚本会60天更新一次,理论上讲免费证书是可以无限更新使用的,当然你也可以通过下面命令手动更新。

acme.sh --renew -d gogobox.tk --force --ecc
acme.sh --renew -d gogobox.tk --force --ecc

如果需要生成www开头的或者是二级域名,请在域名前面加-d参数,--force参数是强制更新证书!例如:

acme.sh --issue -d gogobox.tk -d www.gogobox.tk -d m.gogobox.tk --standalone -k ec-256 --force
acme.sh --issue -d gogobox.tk -d www.gogobox.tk -d m.gogobox.tk --standalone -k ec-256 --force

安装证书,SSL证书申请后,默认保存在root目录内,需要进行证书安装,将证书安装在指定位置

acme.sh --installcert -d gogobox.tk --ecc --key-file /home/ssl/gogobox.tk.key --fullchain-file /home/ssl/fullchain.cer --reloadcmd "systemctl force-reload nginx"
acme.sh --installcert -d gogobox.tk --ecc --key-file /home/ssl/gogobox.tk.key --fullchain-file /home/ssl/fullchain.cer --reloadcmd "systemctl force-reload nginx"

这里还有另外一种SSL证书的申请方式:
先安装socat

dnf install socat
dnf install socat

安装 acme.sh

curl https://get.acme.sh | sh
curl https://get.acme.sh | sh

脚本安装后reboot,在nginx里设置好域名后,再进行证书申请

acme.sh --issue -d gogobox.tk -d www.gogobox.tk --webroot /var/wwwroot/
acme.sh --issue -d gogobox.tk -d www.gogobox.tk --webroot /var/wwwroot/

也可以使用读取nginx配置的命令,前提是在nginx中已经设置好域名的指向路径。

acme.sh --issue -d gogobox.tk --nginx
acme.sh --issue -d gogobox.tk --nginx

证书申请成功后,需要把证书安装一下:

证书申请成功后,进行证书安装。
acme.sh --installcert -d gogobox.tk --key-file /home/ssl/gogobox.tk.key --fullchain-file /home/ssl/fullchain.cer --reloadcmd "systemctl force-reload nginx"
证书申请成功后,进行证书安装。
acme.sh --installcert -d gogobox.tk --key-file /home/ssl/gogobox.tk.key --fullchain-file /home/ssl/fullchain.cer --reloadcmd "systemctl force-reload nginx"

扩展名cer和crt的的证书有什么区别?

扩展名是CRT的证书是DER编码,也可以是PEM编码。扩展名CER和CRT几乎是同义词。这种情况在各种unix/linux系统中很常见。

CER是CRT证书的微软型式。可以用微软的工具把CRT文件转换为CER文件(CRT和CER必须是相同编码的,DER或者PEM)。扩展名为CER的文件可以被IE识别并作为命令调用微软的cryptoAPI。

Windows中的证书扩展名有好几种,比如.cer和.crt。通常而言,.cer文件是二进制数据,而.crt文件包含的是ASCII数据。

cer文件包含依据DER(Distinguished Encoding Rules)规则编码的证书数据,这是x.690标准中指定的编码格式。

X.509是一个最基本的公钥格式标准,里面规定了证书需要包含的各种信息。通常我们提到的证书,都是这个格式的,里面包含了公钥、发布者的数字签名、有效期等内容。要强调的是,它只里面是不包含私钥的。相关的格式有:DER、PEM、CER、CRT。

SSL域名证书已经申请完毕了!

在线免费申请 SSL证书

FreeSSL:FreeSSL是一个免费提供 HTTPS 证书申请、HTTPS 证书管理和 HTTPS 证书到期提醒服务的网站,旨在推进 HTTPS 证书的普及与应用,简化证书申请的流程。

SSL证书申请网址:https://freessl.org

FreeSSL是一个免费提供 HTTPS 证书申请

certbot:certbot是一个脚本类型的Let’s Encrypt证书申请客户端,需要一定的命令行使用经验方可操作,如需自动更新,还需要添加插件,使用起来比较困难。如有自动更新和自动部署需求,建议使用下面介绍的acme.sh和ohttps。

SSL证书申请网址:https://certbot.eff.org

在线免费申请 SSL证书

acme.sh:是一个知名的用于申请Let’s Encrypt证书的开源项目,也是属于脚本类型,有比较详细的文档,支持自动化更新和自动化部署。唯一缺点,如果有更新后自动部署至多个节点的需求的话,acme.sh无法满足。如果你有一定的命令行使用经验,acme.sh使用起来还是非常方便,强烈推荐!关于更新后自动部署至多个节点的需求,建议使用下面介绍的ohttps。

在线免费申请 SSL证书

SSL证书申请网址:https://github.com/acmesh-official/acme.sh

提供了类似于acme.sh的功能,不过提供了友好的管理界面,可申请Let’s Encrypt免费通配符类型证书,还提供了证书吊销、到期前提醒、自动更新、自动部署功能。另外比acme.sh增加了一些非常实用的功能,主要包括可自动部署至阿里云、腾讯云、七牛云的负载均衡、内容分发CDN、SSL证书列表等,并可自动部署至多个nginx容器中。如果你有在证书更新后自动部署至多个不同节点的需求,使用http://ohttps.com就对了,在这里强烈推荐大家使用http://ohttps.com申请和管理Let’s Encrypt颁发的免费HTTPS证书。

在线免费申请 SSL证书

SSL证书申请网址:http://ohttps.com


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK