ps首先我们需要把LNMP
环境搭建好,可以用各种面板(宝塔、WDCP、AMH)或者lnmp
这样的一键安装包。这里就不做介绍了。
1. 申请证书
申请证书的方式很多,各大云服务商那都可以买到,或者申请免费的。像阿里云、七牛云…都可以直接申请。申请完后,下载证书文件包解压,里面会有一个.key
和.pem
的公钥和证书文件。上传至服务器/usr/local/nginx/conf
目录下(其他目录也可以,自定),
2. 配置证书
如果是lnmp
安装的环境,执行执行命令lnmp ssl add
命令安装提示操作就可以了。
打开网站的nginx
配置文件,一般都在/usr/local/nginx/conf/vhost
目录下,
server
{
listen 80;
server_name domain.com
index index.html index.htm index.php;
root /www/wwwroot/domain;
...
return 301 https://$server_name$request_uri; # 重定向至https
}
server
{
listen 443; #监听端口为443
server_name domain.com
index index.html index.htm index.php;
root /www/wwwroot/domain;
ssl on; #开启ssl
ssl_certificate /usr/local/nginx/cert/conf/domain.com.pem; #证书位置
ssl_certificate_key /usr/local/nginx/cert/conf/domain.com.key; #公钥位置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #指定密码为openssl支持的格式
ssl_prefer_server_ciphers on; #//依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
ssl_ciphers "EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256!MD5";#密码加密方式
ssl_session_cache builtin:1000 shared:SSL:10m;
}
然后执行一下命令
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
重启成功没有保存就说明配置没有问题,然后就可以使用https:
访问网站了。
重启时如果报如下错误,说明nginx
里面没有编译进ssl
模块[emerg] 10464#0: unknown directive "ssl" in /usr/local/nginx-0.6.32/conf/nginx.conf:17
网上找找到的这个方法成功解决
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module