以下有关Apache的SSL以前咱们加密教程,在这篇文章中,我们将讨论如何生成并安装让我们加密CA为Nginx的网络服务器在Ubuntu 14.04发布了免费的SSL / TLS证书(也适用于其他的Ubuntu发行版)或Debian 8 。
也阅读
测试示例环境
安装让加密在Ubuntu和Debian上保护Nginx
要求
- 用有效的DNS一个注册的域名
A
记录指向回你的服务器的IP地址。 - 已安装的Nginx Web服务器启用了SSL和Vhost,以防您计划托管多个域或子域。
第1步:安装Nginx Web服务器
1.在第一步安装Nginx的网络服务器,如果尚未安装,通过发出以下命令:
$ sudo apt-get install nginx
在Ubuntu 14.04和Debian 8上安装Nginx Web Server
第2步:为Nginx生成一个让我们加密SSL证书
2.在生成免费的SSL / TLS证书,安装在让我们的加密软件/usr/local/
通过发出以下命令使用Git客户端的帮助文件系统层次:
$ sudo apt-get -y install git $ cd /usr/local/ $ sudo git clone https://github.com/letsencrypt/letsencrypt
3.虽然获得了Nginx的证书的过程是自动的,你仍然可以手动创建和安装使用让我们的加密独立插件Nginx的免费SSL证书。
此方法需要80端口不能在您的系统上使用了很短的时间段,而让我们的客户端进行加密生成证书之前验证服务器的身份。
如果您正在运行Nginx,请通过发出以下命令停止服务。
$ sudo service nginx stop
如果你正在运行的绑定端口80上停止服务以及其他服务。
4.确认端口80是运行免费的netstat命令 :
$ sudo netstat -tlpn | grep 80
检查Linux中的当前监听端口
5.现在是时候来运行letsencrypt
为了获得一个SSL证书。 去让我们的加密在/ usr /本地/ letsencrypt系统路径中找到安装目录,并通过提供certonly运行letsencrypt-auto命令--standalone
选项和-d
标志为每个域或子域要生成一个证书。
$ cd /usr/local/letsencrypt $ sudo ./letsencrypt-auto certonly --standalone -d your_domain.tld
获取让我们加密SSL证书
6.输入将由咱们加密丢失键恢复或紧急通知所使用的电子邮件地址。
请输入电邮地址
7.按Enter键与许可中的条款。
接受Letsencrypt协议
8.最后,如果一切顺利,类似的截图信息下面应该出现在终端控制台上。
Letsencrypt安装完成
第3步:安装让我们在Nginx中加密SSL证书
9.现在,您的SSL证书已经生成,我们开始配置Web服务器Nginx的使用它。 新SSL证书都放在/etc/letsencrypt/live/
一个域名命名的目录下。 运行ls命令列出您的域颁发的证书文件。
$ sudo ls /etc/letsencrypt/live/ $ sudo ls -al /etc/letsencrypt/live/caeszar.tk
Letsencrypt SSL证书
10.接下来,打开/etc/nginx/sites-available/default
使用文本编辑器文件,并在第一注释行指定SSL块的开头后添加以下块。 使用以下屏幕截图作为指导。
$ sudo nano /etc/nginx/sites-enabled/default
Nginx块摘录:
# SSL configuration # listen 443 ssl default_server; ssl_certificate /etc/letsencrypt/live/caeszar.tk/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/caeszar.tk/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; ssl_dhparam /etc/nginx/ssl/dhparams.pem;
配置Nginx使用让我们加密SSL
相应地替换SSL证书的域名值。
11.在下一步产生在/ etc / nginx的/ SSL /目录很强的Diffie-Hellman密码,以便通过运行以下命令来保护你的服务器对僵局的攻击。
$ sudo mkdir /etc/nginx/ssl $ cd /etc/nginx/ssl $ sudo openssl dhparam -out dhparams.pem 2048
为Nginx生成Diffie Hellman密码
12.最后,重新启动Nginx的守护进程,以反映变化。
$ sudo systemctl restart nginx
并通过访问以下网址测试您的SSL证书。
https://www.ssllabs.com/ssltest/analyze.html
检查Nginx允许加密SSL证书
第4步:自动续订让我们加密Nginx证书
13. 让我们加密CA颁发的证书的有效期为90天。 为了自动续订到期日之前创建的文件ssl-renew.sh
在bash脚本/usr/local/bin/
目录,内容如下。
$ sudo nano /usr/local/bin/ssl-renew.sh
添加以下内容ssl-renew.sh
文件。
#!/bin/bash cd /usr/local/letsencrypt sudo ./letsencrypt-auto certonly -a webroot --agree-tos --renew-by-default --webroot-path=/var/www/html/ -d your_domain.tld sudo systemctl reload nginx exit 0
自动续订Nginx允许加密SSL证书
更换--webroot-path
变量来匹配您的Nginx的文档根目录。 通过发出以下命令确保脚本可执行。
$ sudo chmod +x /usr/local/bin/ssl-renew.sh
14.最后增加一个cron作业在午夜运行脚本每两个月,以确保您的证书将在大约30天后到期前进行更新。
$ sudo crontab -e
在文件底部添加以下行。
0 1 1 */2 * /usr/local/bin/ssl-renew.sh >> /var/log/your_domain.tld-renew.log 2>&1
更新允许加密SSL证书
而已! 你的Nginx服务器现正在使用的是免费让我们加密的SSL证书SSL内容。