开始本篇配置操作前,请务必确认您已经阅读一键部署证书至阿里云云服务器ECS中的部署限制和前提条件,并完成修改配置文件前的所有操作步骤。 支持的WebServer及版本目前仅支持Nginx。 Alibaba Cloud Linux 3.x镜像中的Nginx版本要求为1.18.0-2.1.al8 ~ 1.20.1-1.0.5.al8(不包含此版本)。如果ECS实例中已安装Nginx,需要您在使用一键部署功能前检查Nginx的安装版本是否支持,否则需要您将Nginx降低至支持的版本,或重新安装。 Ubuntu 22.04镜像仅支持从apt源上安装的Nginx版本。 重要 Alibaba Cloud Linux 3.x和Ubuntu 22.04镜像,均不支持自行构建的Nginx的版本,仅支持使用包管理器安装,如yum、apt。 Alibaba Cloud Linux 3.x镜像说明 本示例是以Nginx 1.20.1版本为例介绍。/etc/nginx/是使用yum方式安装Nginx的默认安装目录。如果您手动修改过该目录,请根据实际配置调整。 支持的WebServer及版本: Nginx:1.18.0-2.1.al8 ~ 1.20.1-1.0.5.al8(不包含此版本)。 重要 如果云服务器ECS已安装Nginx,需要您在使用一键部署功能前检查Nginx的安装版本是否支持,否则需要您将Nginx降低至支持的版本,或重新安装。 打开/etc/nginx/nginx.conf配置文件,并在pid /run/nginx.pid;后添加ssl_engine pkcs11;用于指定使用SSL/TLS加密库。 添加内容: ssl_engine pkcs11;添加位置及完整示例: # For more information on configuration, see: # * Official English Documentation: # * Official Russian Documentation: user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # 指定使用PKCS#11加密库 ssl_engine pkcs11;打开/etc/nginx/nginx.conf配置文件,取消Settings for a TLS enabled server注释,并添加include "/etc/acm/ssl/nginx-acm.conf";用于引用SSL密钥配置。 添加内容: include "/etc/acm/ssl/nginx-acm.conf";添加位置及完整示例: server { listen 443 ssl http2; listen [::]:443 ssl http2; # 指定主机名或公用NAME(CN) server_name example.com; root /usr/share/nginx/html; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_prefer_server_ciphers on; # 引用SSL密钥配置 include "/etc/acm/ssl/nginx-acm.conf"; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }打开/usr/lib/systemd/system/nginx.service文件,添加P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock和OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf用于配置与SSL密钥服务的通信。 添加内容: Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock" Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf"添加位置及完整示例: [Unit] Description=A high performance web server and a reverse proxy server Documentation=man:nginx(8) After=network.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid TimeoutStopSec=5 KillMode=mixed # 配置与SSL密钥服务的通信 Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock" Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf" [Install] WantedBy=multi-user.target说明 如果您不清楚Nginx的systemd服务配置文件路径,可执行sudo find / -name "nginx.service"查找。 执行以下命令,重载Nginx systemd服务配置。 systemctl daemon-reloadUbuntu 22.04镜像说明 本示例是以Nginx 1.18.0版本为例介绍。/etc/nginx/是使用apt方式安装Nginx的默认安装目录。如果您手动修改过该目录或使用其他方式安装的Nginx,请根据实际配置调整。 打开/etc/nginx/nginx.conf配置文件,并在pid /run/nginx.pid;后添加ssl_engine pkcs11;用于指定使用SSL/TLS加密库。 添加内容: ssl_engine pkcs11;添加位置及完整示例: user www-data; worker_processes auto; pid /run/nginx.pid; # 指定使用PKCS#11加密库 ssl_engine pkcs11; include /etc/nginx/modules-enabled/*.conf;打开/etc/nginx/sites-enabled/default文件,在default文件中新建server块并添加include "/etc/acm/ssl/nginx-acm.conf";。 添加内容: include "/etc/acm/ssl/nginx-acm.conf";添加位置及完整示例: server { listen 443 ssl; # 指定主机名或公用NAME(CN) server_name example.com; root /var/www/html; index index.html index.htm; access_log /var/log/nginx/access_6equj5.log; error_log /var/log/nginx/error_6equj5.log; ssl on; # 引用SSL密钥配置 include "/etc/acm/ssl/nginx-acm.conf"; location / { try_files $uri $uri/ =404; } }打开/usr/lib/systemd/system/nginx.service文件,添加P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock和OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf用于配置与SSL密钥服务的通信。 说明 如果您不清楚Nginx的systemd服务配置文件路径,可执行sudo find / -name "nginx.service"查找。 添加内容: Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock" Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf"添加位置及完整示例: [Unit] Description=A high performance web server and a reverse proxy server Documentation=man:nginx(8) After=network.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid TimeoutStopSec=5 KillMode=mixed # 配置与SSL密钥服务的通信 Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock" Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf" [Install] WantedBy=multi-user.target执行以下命令,重载Nginx systemd服务配置。 systemctl daemon-reload (责任编辑:) |