Loading

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  

 

  如果在centos下启动nginx出现Failed to start nginx.service:unit not found,请参考如下:

  https://www.cnblogs.com/ansibee/p/8087476.html

  https://my.oschina.net/u/4094532/blog/3108472

 

  重新执行 

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;
    }
}

  

 

  官方文档:

  http://nginx.org/en/docs/http/configuring_https_servers.html#single_http_https_server

  http://nginx.org/en/docs/http/ngx_http_ssl_module.html

 

 

posted @ 2020-05-03 01:16  街头卖艺的肖邦  阅读(356)  评论(0编辑  收藏  举报