昨天搞了一晚上的 Let's Encrypt 都没成功,一直说 DNS 问题,或者是不能找到 A 记录。
后来才知道,原来是尼玛用了 cdn 的原因!!!于是关闭 cdn ,然后睡觉,等待第二天再来弄。
然后早上的时候又出现问题:
Let's Encrypt 部署要求关闭 nginx 的 80 端口-->但是关闭 80 端口之后-->网站就不能用了-->然后就不能通过验证!
最后在 V2EX 上提问,哈哈,很感谢 v2 的站长 @Livid 给出的代码!
那么这里就简单记录一下部署过程。
首先假设你已经在 vps 上部署了网站!没有的话可以参考我的第一篇文章部署一个 typecho 博客!其实不论是自己写的网站,还是其他网站程序,都是大同小异的!主要是要知道:
/usr/local/nginx/conf
。如果是自己安装的 nginx ,根目录可能在:/etc/nginx/
。/home/wwwroot/inotepad.cn
。知道这两个目录之后就好办了!
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
chmod +x letsencrypt-auto
./letsencrypt-auto certonly -a webroot --webroot-path=/home/wwwroot/inotepad.cm --email [email protected] -d inotepad.cn -d www.inotepad.cn
将目录、邮箱和域名换成你自己的
之后看到
就说明安装证书成功了!
并且能看到证书的目录:
/etc/letsencrypt/live/inotepad.cn/
该目录下有四个文件
cert.pem - Apache 服务器端证书
chain.pem - Apache 根证书和中继证书
fullchain.pem - Nginx 所需要 ssl_certificate 文件
privkey.pem - 安全证书 KEY 文件
打开你的 nginx 配置文件,我的是:/usr/local/nginx/conf/vhost/inotepad.cn.conf
。
修改记录:
server
{
listen 80;
server_name www.inotepad.cn inotepad.cn;
return 301 https://$server_name$request_uri; #非 http 跳转到 https
}
server
{
listen 443 ssl;
ssl on;
ssl_certificate /etc/letsencrypt/live/inotepad.cn/fullchain.pem; #Nginx 所需要 ssl_certificate 文件
ssl_certificate_key /etc/letsencrypt/live/inotepad.cn/privkey.pem; #安全证书 KEY 文件
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
server_name www.inotepad.cn inotepad.cn;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/notepad;
[...] #更多的配置
}
保存之后,命令行输入
nginx -s reload
重新加载配置文件以生效!
/sbin/iptables -I INPUT -p tcp --dport 443 -j ACCEPT
1
tumbzzc OP 所有的一切都是从网上找来的~~~我一个小白是不可能原创出文章的
|
2
lygmqkl 2016-10-01 11:16:38 +08:00 via iPhone
收藏之 问个小白问题 现在所有浏览器都支持 https 了吗? 如果有不支持的怎么办?
|
5
xujialiang 2016-10-01 11:31:44 +08:00
我想问个问题,就是如果我的 nginx 只是用来做反代,没有网站根目录,那么怎么配?谁知道捏?
|
6
Tink 2016-10-01 11:39:48 +08:00 via iPhone
@xujialiang 我和你的情况一样,目前是每次更新证书前, kill 掉 nginx ,然后 python 起一个 simple http server ,更新完之后 kill 掉 python ,重启 nginx
|
7
xJogger 2016-10-01 11:40:45 +08:00
我选择 https://github.com/xdtianyu/scripts/tree/master/le-dns
满足条件后基本一键生成证书, VPS 还不需要怎么配置。 |
8
Tink 2016-10-01 11:44:39 +08:00 via iPhone
@xujialiang@xujialiang 一个脚本就 OK ,这样主要是免去了修改或者添加 dns 解析的问题
|
9
Showfom 2016-10-01 15:03:34 +08:00 via iPhone 1
哪要那么麻烦....acme.sh 欢迎你
|
10
MaiCong 2016-10-01 15:04:52 +08:00 via iPhone
官网有教程,两三句命令的事搞的这么麻烦?
|
11
kid740246048 2016-10-01 16:18:46 +08:00 via Android
可以直接安装 certbot ,使用更方便
|
12
xujialiang 2016-10-01 16:28:13 +08:00
@Tink thanks~~~~~~
|
13
checkking2014 2017-03-13 12:43:49 +08:00
请问怎么避免关闭服务器呢?
|