Nginx 配置 SSL 证书
上一篇:使用 acme.sh 获取 SSL 证书 我们获得了 SSL 证书,可见到这几个文件。
-
cer
文件是证书文件,也称为公钥证书,它包含了用于将SSL/TLS
连接加密的公钥和证书持有者的信息。 -
csr
文件是证书签名请求,它包含了证书请求者(通常是网站管理员)的公钥和所需证书的信息,例如证书主题名称、组织名称等等。 -
key
文件是私钥文件,也称为证书私钥,它包含在服务器上用于解密SSL/TLS
连接的加密密钥。私钥文件通常与证书文件一起使用,以确保通信的安全性和完整性。
我们需要用到的是 example.xyz.cer
和 example.xyz.key
两个文件(具体名称取决于你的域名)。
我们把这两个文件复制出来,本例中我会把它们放在 etc/nginx
路径下,我在该路径下新建一个 SSL
文件夹,证书文件会放置到这里面。
/etc/nginx/SSL/example.xyz.cer
/etc/nginx/SSL/example.xyz.key
Nginx 配置
在 Nginx 的配置文件中配置 SSL 证书和私钥路径:
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name example.xyz;
#请填写证书文件的相对路径或绝对路径;cer 文件
ssl_certificate /etc/nginx/SSL/example.xyz.cer;
#请填写私钥文件的相对路径或绝对路径;key 文件
ssl_certificate_key /etc/nginx/SSL/example.xyz.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
root /home/html;
location / {
…………
}
}
-
ssl_ciphers
:指定SSL/TLS
连接中可以使用的密码套件的选项。它决定了客户端和服务器之间加密通信时使用哪种算法和参数。这个参数可以被设置为一个字符串列表,每个字符串代表一个密码套件,nginx 将在列表中选择最安全的套件进行使用。 -
ssl_protocols
是 nginx 配置中用来指定SSL/TLS
连接使用的协议的选项。它决定了 nginx 服务器可以使用哪些SSL/TLS
协议进行加密通信。该选项可以设置为一个字符串列表,每个字符串代表一个标准的SSL/TLS
协议版本,例如SSLv2
、SSLv3
、TLSv1.0
、TLSv1.1
、TLSv1.2
、TLSv1.3
等。通常情况下,建议设置ssl_protocols
为TLSv1.2
和TLSv1.3
,以确保更高的安全性和兼容性。
如果需要强制使用 https
,请使用以下重定向:
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}