lnmp本身支持自签证书,这里只说使用用acme.sh脚本单独签发证书。
lnmp环境由于修改了原生nginx的一些规则,需要稍作修改。本文只记录我自己签发证书过程。
curl https://get.acme.sh | sh
lnmp 环境下做了部分配置变更,不建议直接使用--nginx方式验证和生成。
acme.sh --issue -d www.evenvi.com --webroot /home/wwwroot/www.evenvi.com/public/
前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.
注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.
正确的使用方法是使用 --installcert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:
acme.sh --installcert -d www.evenvi.com --key-file /home/wwwroot/www.evenvi.com/cert/key.pem --fullchain-file /home/wwwroot/www.evenvi.com/cert/cert.pem --reloadcmd "/etc/init.d/nginx reload"
在 /usr/local/nginx/vhost/www.evenvi.com.conf 中修改为如下配置。
listen 443 ssl;
ssl_certificate /home/wwwroot/www.evenvi.com/cert/cert.pem;
ssl_certificate_key /home/wwwroot/www.evenvi.com/cert/key.pem;
在配置文件后面直接添加如下配置即可
server { listen 80; server_name www.evenvi.com; rewrite ^(.*)$ https://${server_name}$1 permanent; }
这样访问80就自动转到433接口。
Related Posts: