配置比较简单,以阿里云为例,先要购买ssl证书。有贵也有免费的。根据自己情况选择。购买成功后,根据自己的服务器类型选择对应的证书下载。具体配置步骤如下。以nginx配置一个单域名的SSL为例


1、 把下载的pem、key的打包文件,上传服务器上,路径可以自己定义。推荐上传到nginx的默认安装目录。我是放在/etc/nginx 目录下创建了一个cert文件夹下。


2、在默认配置/etc/nginx/conf.d 下的default.conf 里。添加SSL


server {
        listen 443 ssl;
        ssl_certificate cert/[x](http://www.yihuixiangxuan.com/4606514_www.yihuixiangxuan.com.pem;)xx.pem; #根据自己的路径配置
        ssl_certificate_key cert/xxx.key;  #根据自己的路径配置
        ssl_session_cache    shared:SSL:100m;
        ssl_session_timeout 100m;
        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;
        charset utf-8;
        server_name[www.](http://www.yihuixiangxuan.com;/)xxx.com; # 证书对应的域名
        root  xxxx; #官网的源码路径;
}


3、wq保存后,重启nginx。


Nginx -re reload。


如果没报错说明成功了。


常见错误有


如果重启Nginx服务器出现报错the "ssl" parameter requires ngx_http_ssl_module,您需要重新编译Nginx并在编译安装的时候加上--with-http_ssl_module配置。


如果重启Nginx服务器出现报错"/cert/3970497_ pic.certificatestests.com.pem":BIO_new_file () failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/cert/3970497_ pic.certificatestests.com.pem','r ') error:2006D080:BIO routines:BIO_new_file:no such file),您需要去掉证书相对路径最前面的/。例如,您需要去掉/cert/3970497_ pic.certificatestests.com.pem 最前面的/,使用正确的相对路径cert/3970497_ pic.certificatestests.com.pem


4、 如果需要配置xxx.com 跳转到 www.xxx.com ,需要在80端口配置一个


rewrite ^(.*)$ https://$host$1 permanent;


Nginx隐藏版本号和X-Powered-By HTTP头
在实践中通常需要主动隐藏服务器端软件版本号,防止攻击者通过特定版本号的已知漏洞进行针对性攻击。本文演示如何隐藏Nginx版本号,以及隐藏php版本号。
nginx部署之https访问按照不同路径访问不同项目
上一篇介绍过如何在一个nginx上使用同一个端口部署多个web项目进行访问.具体内容可以参考:nginx支持一个端口访问多个前端项目(http以及https).