手机版

Debian 8 (Jessie)安装Nginx StartSSL证书

时间:2020-05-04 来源:互联网 编辑:宝哥软件园 浏览:
源码编译Nginx生成私钥和证书签名请求(CSR)部署StartSSL证书收集其他必需的证书文件安装StartSSL证书

本文将告诉你如何在Debian Jessie上安装最新的稳定版本的nginx。 它还将部署来自StartSSL的免费SSL证书。 在本文中,我们配置nginx使用强大的服务器端密码套件,并禁用易受攻击的SSLv2和SSLv3协议。

源码编译Nginx



虽然在许多情况下从软件包存储库进行安装nginx已经够用,但此安装方法的HTTP/2不能使所有浏览器兼容。 Google Chrome现在只允许与应用层协议协商(ALPN)的HTTP/2连接,OpenSSL 1.0.2或更高版本中支持此协议。 此版本不包括在默认Debian软件包存储库中,因此您需要手动添加它,并针对较新的OpenSSL编译nginx以启用对HTTP/2的完全支持。
请注意,当使用此方法时,您将负责更新nginx以包括最新的更新。
1.将Debian Backports存储库添加到包管理器检查更新的文件列表中:

echo "deb http://ftp.debian.org/debian jessie-backports main " >> /etc/apt/sources.list.d/backports.list

2.更新可用包的列表:

apt-get update

3.从backports存储库安装最新版本的OpenSSL及其库:

apt-get install -t jessie-backports openssl libssl-dev

4.安装nginx依赖关系:

apt-get install libpcre3-dev build-essential

5.将最新的稳定版本的nginx下载到/opt目录:

cd /opt
wget http://nginx.org/download/nginx-1.11.2.tar.gz

6.解压缩文件,然后切换到新目录:

tar -zxvf nginx-1.*.tar.gz
cd /opt/nginx-1.*

7.配置编译选项。 提供下面的示例以供参考。 根据您的需要,您可能希望添加其他选项,:

./configure --prefix=/opt/nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx --with-debug --with-threads --with-http_ssl_module --with-ipv6 --with-http_v2_module

此步骤完成后,您将看到配置摘要的输出。 一定要记住给定的文件路径,因为你很快就需要它们。
8.使用您在步骤7中指定的选项编译和安装nginx:

make
make install

9.创建nginx系统用户

sudo adduser --system --no-create-home --disabled-login --disabled-password --group nginx

10.创建一个systemd服务脚本来运行nginx:
/lib/systemd/system/nginx.service:

[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target
 
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/opt/nginx/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/opt/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /opt/nginx/logs/nginx.pid
TimeoutStopSec=5
KillMode=mixed
 
[Install]
WantedBy=multi-user.target

如果使用步骤7中的编译配置选项,则可以完全按照以上的脚本。 但是,如果指定了自己的文件路径,则可能需要调整PIDFile的值以匹配您的PID文件,并且以Exec开头的行中的路径匹配您的nginx二进制文件路径。 这些文件路径包含在步骤7的输出中。
11.为nginx.service加上执行权限

chmod +x /lib/systemd/system/nginx.service

12.启动nginx

systemctl start nginx

或者,您可以设置nginx在启动时自动启动:

systemctl enable nginx

生成私钥和证书签名请求(CSR)



1.创建一个目录来存储您的证书和私钥。 在Debian系统上,用于存储证书和私钥的默认位置在/etc/ssl/中。 在该位置创建一个新的nginx目录,以存储您的证书和nginx的私钥:

mkdir /etc/ssl/nginx

2.切换到新创建的目录:

cd /etc/ssl/nginx

3.生成4096位私有RSA密钥。 大多数证书颁发机构目前要求客户至少使用2048位专用RSA密钥。

openssl genrsa -out server.key 4096

4.生成证书签名请求(CSR)。 在此示例中,server.key是上面创建的RSA私钥文件,server.csr是我们的CSR文件的名称:

openssl req -new -key server.key -out server.csr

部署StartSSL证书



把证书签名请求文件server.csr提交到StartSSL网站,生效后下载证书相关文件,提取出里面的crt文件,并保存到/etc/ssl/nginx/server.crt。

收集其他必需的证书文件

1.确保您仍然在nginx SSL文件所在的目录中:

cd /etc/ssl/nginx

2.下载StartSSL CA证书:

wget http://www.startssl.com/certs/ca.pem

3.将StartSSL中间CA证书附加到该文件,创建统一的CA证书文件:

curl http://www.startssl.com/certs/sub.class1.server.ca.pem >> ca.pem

4.创建包含您的签名证书和Nginx的StartSSL CA证书的单个文件:

cat server.crt ca.pem > nginx.crt

安装StartSSL证书

1.默认情况下,nginx配置为仅在TCP端口80上提供HTTP请求。要使用SSL,您需要配置nginx以在TCP端口443上提供HTTPS请求。打开nginx SSL服务器块示例配置文件并调整配置.
/etc/nginx/conf.d/example_ssl.conf:

# HTTPS server
#
server {
    listen       443 ssl;
    server_name  example.com;
 
    ssl_certificate      /etc/ssl/nginx/nginx.crt;
    ssl_certificate_key  /etc/ssl/nginx/server.key;
 
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout  5m;
 
    ssl_ciphers  "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH !RC4";
    ssl_prefer_server_ciphers   on;
 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 
    location / {
        root   /opt/nginx/html;
        index  index.html index.htm;
    }
}

将server_name的值替换为您的域或子域名称。 请确保ssl_certificate和ssl_certificate_key的值与您创建的证书和私钥的文件路径相匹配。 行ssl_session_cache,ssl_ciphers和ssl_protocols应与上述配置匹配。
根据您安装nginx的方式,默认情况下可能不会创建此文件。 例如,如果从源编译nginx,则需要创建example_ssl.conf文件并将此配置复制到其中。 如果是这种情况,您还需要将以下行添加到主要nginx配置文件中的http块:

include     /etc/nginx/conf.d/*.conf;

2.重启nginx

systemctl restart nginx

版权声明:Debian 8 (Jessie)安装Nginx StartSSL证书是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐