这个是逗比根据地的备份镜像站(非官方)。牢记域名: [doubibackup.com]。搜索:标签云
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

『失效』免费申请SSL证书 – AlphaSSL 及 LNMP一键包Nginx配置SSL证书教程

建站资源 Toyo 49评论
广告
本文最后更新于 2018年7月19日 12:09 可能会因为没有更新而失效。如已失效或需要修正,请留言!

过年了没啥教程写的,放假了我也很懒,最近这两天也有人学习建站想要搞个SSL证书玩玩,但是完全没有建站经验,这些都不懂。

成功做过一遍的人会觉得申请+配置SSL证书很简单,但是完全没接触过的小白就会很迷,所以我就写个教程吧。

因为 AlphaSSL 申请网站失效,所以本教教程前半部分的申请SSL步骤失效,后面的Nginx依然通用。


目前颁发免费SSL证书我只知道:AlphaSSL、Let's Encrypt SSL、StartSSL(沃通)

StartSSL(沃通)因为违反了SSL证书的规定,导致2016年10月后新申请的SSL证书都被浏览器拉黑了,所以不建议使用。

AlphaSSL是比较早的一个,支持免费泛域名SSL证书,最多可以签1年。

Let's Encrypt SSL则是前段时间很火的一个免费SSL证书,最多可以签3个月。

免费SSL证书各个之间也没什么区别,主要是颁发机构的区别,其他的都没影响,所以我作为一个懒人能签多次时间就签多长时间,所以我选了AlphaSSL。

本教程中申请+配置SSL证书均以 toyoo.pw 为例,请自行替换为自己的域名,不要傻傻的照着教程写示例域名!

申请SSL证书

申请SSL证书前,请先关闭域名的Whois保护,避免SSL证书申请时无法扫描到域名注册时填写的域名邮箱,导致无法申请SSL证书!如果不确定,请查询域名Whois信息,看看是否可以查询到你的域名注册邮箱,域名Whois信息查询:站长工具

我们首先在本地 新建三个空文本文件 分别命名为: toyoo.pw.csr、toyoo.pw.key、toyoo.pw.crt

CSR是申请SSL证书需要的文件,KET是对应的证书密匙,CRT是证书文件。

生成CSR文件和KEY密匙

申请SSL证书的第一步就是生成CSR和KEY文件。

我们打开 CSR文件在线生成工具 ,填写 组织/公司、部门/单位、城市、省份、邮箱和域名

国家、加密方式、哈希签名算法和加密位数都默认就好,不要改。

邮箱和域名必须填写正确。

AlphaSSL支持免费泛域名SSL证书,所以域名我们填写为 *.toyoo.pw

泛域名SSL证书指的是,这个SSL证书,你可以用在任何以 toyoo.pw 为主的一级域名(toyoo.pw)、二级域名(xxx.toyoo.pw)等。

填写完毕后,点击 生成CSR文件 按钮。

然后下面就会出现两段代码,分别是 CSR 和 KEY

然后把 CSR和KEY代码 分别保存到我们一开始新建的空文本文件中: toyoo.pw.csr、toyoo.pw.key

申请SSL证书

我们打开 AlphaSSL证书申请网站 ,然后把上面我们生成的 CSR代码 复制到第一个大文本框中。

然后填写下面的邮箱(名、姓、电话号码是可选的),除了邮箱必须正确(建议和上面生成CSR的邮箱一致),其他的随意

然后点击 Verify > 按钮提交SSL证书申请信息。

然后网站会检测 CSR代码 并询问你要申请的域名是否为 *.toyoo.pw ,检查无错误后,点击 OK 按钮。

然后SSL证书申请网站会开始查询申请SSL证书 Whios信息中 域名邮箱(注册域名时候写的邮箱),如果正常情况下,第一个邮箱就会是你的域名邮箱,点击这个邮箱,AlphaSSL就会向你这个邮箱里发送确认邮件,一般等待1-5分钟就会收到邮件了。

如果只显示了如下下图后面那几个邮箱,没有显示你的域名注册邮箱,那么说明你的域名可能是 刚注册 或 没有关闭Whios保护 或 刚关闭Whios保护 查询有缓存,所以你可能需要关闭Whios保护或者等待12-24小时后,才能继续申请。

域名Whois信息查询网站:站长工具如果 注册域名 或者 关闭Whios保护 24小时后依然无法查询到你的域名注册信息,那么请联系域名注册商解决。

邮件确认SSL证书申请

在你的域名注册邮箱中,等待AlphaSSL给你发SSL证书申请确认邮件,邮件内容大概如下图。

点击红框中的 链接,会进入到AlphaSSL的确认网站。

确认SSL证书申请信息正确后点击 I APPROVE 按钮,代表同意。

然后网站就会提示把SSL证书信息发送到你的邮箱了。

现在重新回到邮箱,等待SSL证书信息邮件。

收到邮件后,翻到邮件最下面找到你的SSL证书代码:

OUR SSL CERTIFICATE
--------------------------------------------------
(Formatted for the majority of web server software including IIS and Apache
based servers):

-----BEGIN CERTIFICATE-----
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
-----END CERTIFICATE-----

然后把从 -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- 的内容(包括这两行自身)都复制到最开始我们新建的空文本文件中 toyoo.pw.crt

现在我们已经有了 CSR文件、KEY文件、SSL文件 ,但是还不够,还需要SSL证书颁发机构的中级证书文件。

在SSL证书信息的邮件中,提到了中级证书的获取地址:https://www.alphassl.com/support/install-root-certificate.html

进入后我们找到第一个SSL中级证书代码:SHA-256 - Orders March 31, 2014 and After

点击展开 查看内容

然后把中级证书代码从 -----BEGIN CERTIFICATE-----  -----END CERTIFICATE----- 的内容(包括这两行自身)复制到开始我们新建的空文本文件中 toyoo.pw.crt 我们自己的SSL证书后面。

也就是我们自己的SSL证书代码的最后一行 -----END CERTIFICATE----- 后面空出一行后再粘贴上 中级证书代码,大概格式如下:

-----BEGIN CERTIFICATE-----
XXXXXXXXXXXXXXXXXXXXX
XXXXXXX自己证书XXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
XXXXXXXXXXXXXXXXXXXXX
XXXXXXX中级证书XXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
-----END CERTIFICATE-----

修改并保存SSL证书文件后,我们双击打开 toyoo.pw.crt 证书文件,就会看到如 下下下下图所示的证书信息。

如果没问题,那么到这里我们申请免费SSL证书就完成了。接下来是Nginxi配置SSL证书的步骤。

Nginx配置SSL证书

因为我一直使用的是 lnmp.org 的lnmp一键包,所以以这个一键包为例,其他的一键包也差不多,至于面板,肯定都有SSL证书添加的地方。

配置示例:

首先通过SFTP链接你的网站服务器,然后找到 /usr/local/nginx/conf/vhost/域名.conf 文件并下载到本地(以 toyoo.pw.conf 为例)。

然后我们本地打开 toyoo.pw.conf 文件并修改,下面是修改后的完整配置文件示例

注意:只需要看18行以前就行了,后面的不要跟着示例走,以前是什么就是什么,不需要和示例一模一样。

点击展开 查看内容

代码解释

主要是在 listen 80; 下面添加SSL证书的信息。

如果你的Nginx是 1.10.x 以后的版本(lnmp 1.3满足),那么就支持http2了

listen 443 ssl http2;
# 监听HTTPS端口
ssl on;
# 开启SSL
ssl_certificate /root/toyoo.pw.crt;
# 指定SSL证书 .crt 位置
ssl_certificate_key /root/toyoo.pw.key;
# 指定SSL证书密匙 .key 位置
ssl_session_cache shared:SSL:10m;
# 设置SSL缓存大小
ssl_session_timeout  10m;
# 设置SSL缓存时间
add_header Strict-Transport-Security "max-age=31536000";
# 这个代码的意思是,当访客访问你网站的HTTPS域名后,下次再访问HTTP,浏览器会自动转到HTTPS,而不需要访客先访问网站服务器,然后网站服务器再重定向到HTTPS。31536000是秒,代表一年内有效(如果不清理浏览器缓存)

这段代码指的是强制所有访问 HTTP域名 的都重定向到HTTPS。

如果你不需要访客强制访问 HTTPS ,那么不需要添加这段代码。

		if ( $scheme = http ){
			return 301 https://$server_name$request_uri;
		}

修改并保存后,上传 toyoo.pw.conf /usr/local/nginx/conf/vhost 文件夹并覆盖原文件(注意备份)。

然后再把 toyoo.pw.crt、toyoo.pw.key 上传到 toyoo.pw.conf 文件中指定的地方,比如示例中的 /root 文件夹下。

然后SSH链接网址服务器并重启Nginx:

lnmp nginx restart

如果报错了,那么会提示是哪一行出错,然后查看哪一行存在问题,或者在下面留言问我。

如果没有报错,那么就尝试打开 https://域名/ 看一看浏览器地址栏前是否有绿锁了!

当然,没有也不要急,你能进去 https 了,说明SSL配置基本无误,没有绿锁多半是网站内的 内链和外链 没有都设置为 https,把网站内的所有链接都改为 https 的就行了,可以通过 F12审查元素 来定位错误的元素。

其他说明

重启Nginx报错 或 配置后 火狐浏览器/手机浏览器证书报错

有部分人因为未知原因,按以上教程配置SSL后,重启Nginx报错,或者配置完 火狐浏览器和手机浏览器报错,所以解决方法如下:

点击展开 查看更多


教程到这里基本就结束了,有什么错误或者需要补充的可以在下面的评论里留言!

转载请超链接注明:逗比根据地 » 『失效』免费申请SSL证书 – AlphaSSL 及 LNMP一键包Nginx配置SSL证书教程
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (31)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(49)个小伙伴在吐槽
  1. let's encrypt的certbot也很方便
    zhuangyzj2018-05-17 15:51 回复
  2. 这里可以继续申请AlphaSSL的证书,https://www.starrydots.com/assl
    Littlematch2017-08-20 13:02 回复
    • csr无效?
      johnpoint2017-08-27 13:27 回复
      • 无效+1s
        Kingsley2017-08-31 14:20 回复
  3. :grin: 成功啦!感谢
    lang2017-06-17 18:15 回复
  4. conf文件是这么写的
    server
    	{
    		listen 80;
    		listen 443 ssl http2;
    		ssl on;
    		ssl_certificate /root/1_xxx.ml_bundle.crt;
    		ssl_certificate_key /root/2_xxx.ml.key;
    		ssl_session_cache shared:SSL:10m;
    		ssl_session_timeout  10m;
    		add_header Strict-Transport-Security "max-age=31536000";
     
    		server_name xxx.ml;
    		index index.html index.htm index.php default.html default.htm default.php;
    		root  /home/wwwroot/xxx.ml;
     
    		if ( $scheme = http ){
    			return 301 https://$server_name$request_uri;
    		}
                    }
    
    23332017-05-20 17:37 回复
  5. 重启后打开网站提示 此网站无法提供安全连接 xxx.ml 使用了不受支持的协议。 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 隐藏详细信息 协议不受支持 客户端和服务器不支持一般 SSL 协议版本或加密套件。 用的腾讯云的证书,百度云的加速,请问如何解决。。
    23332017-05-20 16:47 回复
  6. ok 搞定了,原来文件名有问题 :sad:
    Ty2017-04-12 22:44 回复
  7. nginx: [emerg] SSL_CTX_use_PrivateKey_file("/root/endyyb.xyz.key") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/root/endyyb.xyz.key','r') error:20074002:BIO routines:FILE_CTRL:system lib error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib) failed. Use force-quit 这是什么情况?强制退出了
    Ty2017-04-12 22:02 回复
    • 我只清楚前半段是提示找不到文件,后半段不清楚。
      Toyo2017-04-12 22:07 回复
      • 证书没有问题吧
        Ty2017-04-12 22:17 回复
      • 证书名字写错了,现在没问题了 :mrgreen:
        Ty2017-04-12 22:45 回复
  8. 最后GlobalSign的根证书要加在最下面 你写错了
    ecyy.net2017-04-07 19:21 回复
  9. 一点点小瑕疵 能签多次时间>>多少。 有的Whois保护不用关闭,例如gandi,会转发到真实邮箱。
    dtv2017-04-04 09:09 回复
    • 每次能签一年,次数没限制,保留好 CSR等文件用于续签。
      Whois无法关闭的,可以去申请个免费的企业邮箱来申请SSL证书,我的 doub.io 就是。
      Toyo2017-04-04 13:36 回复
  10. 还有一个办法对付whois保护,用域名邮箱。像免费域名不能关闭whois保护的可以自己去疼讯或者网易申请一个免费的域名邮箱,添加一个admin账号就行了,可以不用关闭whois直接用默认的[email protected]来接邮件。
    Steve-luo2017-03-31 15:00 回复
    • 是的,这样也是可以的。
      Toyo2017-03-31 15:32 回复
  11. 安卓手机浏览器一直会弹确认证书比较烦,有什么办法可以解决的吗
    suan2017-03-27 16:06 回复
    • 确认证书?什么浏览器,我的正常啊,我网站就是这个SSL证书。
      Toyo2017-03-27 17:20 回复
  12. 刚刚发现腾讯云有赛门铁克的一年的dv证书申请 马上就审核通过能下载了
    南琴浪2017-03-17 22:16 回复
    • 免费的SSL证书很多,不过其实都差不多。
      顶多一些看起来比较装逼。
      Toyo2017-03-17 22:31 回复
      • 是啊 赛门铁克还是看起来不错滴
        南琴浪2017-03-18 03:23 回复
  13. 我是直接用openssl做的证书 比较简单。。。
    南琴浪2017-03-16 22:09 回复
    • 自签证书,浏览器不认。
      Toyo2017-03-16 23:22 回复
      • 意思是不是说我自建的ssl证书是摆设 根本没用。。。
        南琴浪2017-03-17 21:55 回复
        • 是的,自签SSL证书,没有可靠可信任的签证者,浏览器不会认的,一般都是用来做测试的。
          Toyo2017-03-17 22:30 回复
  14. :sad: 等了半个月了 邮箱还是我以前登记的老邮箱 whois信息保护也关闭了
    cn2017-03-13 12:59 回复
    • whois 信息有问题就 联系域名购买商的客服,一般来说 最大48小时,超过48小时还没有变意味着出问题了。
      Toyo2017-03-13 13:11 回复
  15. 你好,我现在顶级域名已经能用https访问了,但是二级域名ss.xxx.top这个域名还是不能通过https访问,泛域名使用需要注意哪些细节呢?我顶级域名跟二级域名都解析到同一台服务器了
    小龙2017-03-03 11:37 回复
    • 顶级域名(一级域名)和二级域名使用上没什么差别,都是一样的。
      你要告诉我报错是什么,我才能解决,可能你申请的SSL证书不是泛域名的。
      Toyo2017-03-03 12:57 回复
  16. 现在https://域名/确实有绿锁了,但是http的话会进入一个“恭喜您,LNMP一键安装包安装成功!”的页面,怎么解决?
    tulipduke2017-02-27 17:27 回复
    • 你们问问题都很喜欢直接说:“我XXX出错了,怎么解决?”
      你不能指望你用几秒钟写一句问题,让我用一天的时间去猜测问题的细节来帮你解决问题。
      Toyo2017-02-27 18:06 回复
  17. 看不出来哪里出了错。。。 Stoping nginx... nginx: [emerg] "include" directive is not allowed here in /usr/local/nginx/conf/vhost/www.hongyunfang.xyz.conf:19 failed. Use force-quit Starting nginx... nginx (pid 24921 24310) already running.
    tulipduke2017-02-27 17:07 回复
    • 很明显,都告诉你第几行,那个代码有问题了。
      第19行,include。
      Toyo2017-02-27 18:05 回复
  18. 发现加了globalsign之后重启nginx会报错……
    柳言飞2017-02-17 17:28 回复
  19. .ml的域名不能显示自己的邮箱,怎么关闭Whios保护啊?
    amazed2017-02-12 20:24 回复
    • 免费域名实际上不是你的,可以理解为借给你解析权,让你免费用一年。只有付费购买才能算你的。
      Toyo2017-02-12 22:38 回复
      • 就是说免费域名不能关闭whios保护,就不能申请这个了吗?
        amazed2017-02-12 23:43 回复
  20. 其实还有阿里云的免费赛门铁克dv
    Mk.2017-02-12 14:28 回复
    • 腾讯有免费的亚洲诚信
      千叶2017-02-22 17:26 回复
  21. freenom的域名邮箱看不到,要怎么关闭Whios保护
    Fss2017-02-04 15:30 回复
    • freenom的免费域名实际上不是你的,可以理解为借给你解析权,让你免费用一年。只有付费购买才能算你的。
      Toyo2017-02-04 18:17 回复
    • 你FN的Whios不还是Fn的 你以为能变成你的啊,不然就花钱买吧 :shock:
      bogie2017-02-06 16:53 回复
  22. nginx: [emerg] SSL_CTX_use_PrivateKey_file("/data/local/ssl/bigqiu.cn.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch) nginx: configuration file /etc/nginx/nginx.conf test failed 马蛋,我取更改了一次,域名,就不会重新发我邮件了。咋办
    Fss2017-02-04 14:50 回复
    • 什么鬼?你这个说的是你的密匙文件(.key)和证书文件(.crt)不匹配,所以无法使用。
      Toyo2017-02-04 18:18 回复
  23. 现在已经出了Lets Encrypt Support,类似vestacp这种已经可以自动化。 :razz:
    bogie2017-02-04 11:57 回复
  24. 这个工具应该更方便https://github.com/Neilpang/acme.sh
    XYenon2017-01-26 20:28 回复
    • 类似这种自动申请和续时间的SSL证书脚本不少,不过新手的话,虽然用这些更方便,但是更重要的是学习一个使用的过程,当熟悉过程后再使用脚本去简单化 自动化会更好。
      Toyo2017-01-26 20:47 回复