Nginx配置SSL
一开始给自己的阿里云服务器配置SSL证书,使用cerbot,发现有urllib3有很多的依赖不兼容处理不了,换成了acme;
如果是使用自己编译安装的Nginx,需要添加如下配置
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx ln -s /usr/local/nginx/conf /etc/nginx
之后执行
acme.sh --issue -d mydomain.com --nginx /usr/local/nginx/conf.d/nginx.conf
https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E
重新执行
acme.sh --issue -d mydomain.com --nginx
上面的生成证书命令执行如果报如下错误:Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 35,可以使用增加 --use-wget
使用wget代替curl,如果还有错,可以添加--debug查看详情;
acme.sh --installcert -d mydomain.com \ --key-file /usr/local/nginx/conf/ssl/mydomain.com/mydomain.com.key \ --fullchain-file /usr/local/nginx/conf/ssl/mydomain.com/mydomain.com.cer \ --reloadcmd "service nginx force-reload"
server { listen 80; #如果硬性要求全部走https协议,这一行去除 listen 443 ssl; #如果硬性要求全部走https协议,这里去除ssl # 域名,多个以空格分开 server_name domain.com www.mydomain.com; # ssl证书地址 ssl_certificate /etc/nginx/conf/ssl/domain.com.cer; # pem文件的路径 ssl_certificate_key /etc/nginx/conf/ssl/domain.com.key; # key文件的路径 # ssl验证相关配置 ssl_session_timeout 5m; #缓存有效期 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #加密算法 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #安全链接可选的加密协议 ssl_prefer_server_ciphers on; #使用服务器端的首选算法 location / { root html; index index.html index.htm; } }