ps首先我们需要把LNMP环境搭建好,可以用各种面板(宝塔、WDCP、AMH)或者lnmp这样的一键安装包。这里就不做介绍了。

1. 申请证书

申请证书的方式很多,各大云服务商那都可以买到,或者申请免费的。像阿里云、七牛云…都可以直接申请。申请完后,下载证书文件包解压,里面会有一个.key.pem的公钥和证书文件。上传至服务器/usr/local/nginx/conf目录下(其他目录也可以,自定),

2. 配置证书

如果是lnmp安装的环境,执行执行命令lnmp ssl add命令安装提示操作就可以了。
打开网站的nginx配置文件,一般都在/usr/local/nginx/conf/vhost目录下,

  1. server
  2. {
  3. listen 80;
  4. server_name domain.com
  5. index index.html index.htm index.php;
  6. root /www/wwwroot/domain;
  7. ...
  8. return 301 https://$server_name$request_uri; # 重定向至https
  9. }
  10. server
  11. {
  12. listen 443; #监听端口为443
  13. server_name domain.com
  14. index index.html index.htm index.php;
  15. root /www/wwwroot/domain;
  16. ssl on; #开启ssl
  17. ssl_certificate /usr/local/nginx/cert/conf/domain.com.pem; #证书位置
  18. ssl_certificate_key /usr/local/nginx/cert/conf/domain.com.key; #公钥位置
  19. ssl_session_timeout 5m;
  20. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #指定密码为openssl支持的格式
  21. ssl_prefer_server_ciphers on; #//依赖SSLv3TLSv1协议的服务器密码将优先于客户端密码
  22. ssl_ciphers "EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256!MD5";#密码加密方式
  23. ssl_session_cache builtin:1000 shared:SSL:10m;
  24. }

然后执行一下命令

  1. /usr/local/nginx/sbin/nginx -t
  2. /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

网上找找到的这个方法成功解决

  1. ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module