首次通过部署任务一键部署证书至云服务器ECS前,您需要完成Nginx等目标Web应用服务器(WebServer)的相关配置。
开始本篇配置操作前,请务必确认您已经阅读一键部署证书至阿里云云服务器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: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ 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-reload
Ubuntu 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