安装好SSL证书并强制HTTP转HTTPS

分两部分来说:
一、安装好SSL证书幸亏以前装过证书,就少走弯路,直奔Let's Encrypt 。
可是,智者千虑,必有一失 。忽略了Vultr官方自带证书安装,耽误不必要的时间精力 。具体参考 Install Let's Encrypt SSL on One-Click wordPress/ target=_blank class=infotextkey>WordPress
步骤清晰明了:
1. Install CertificateSSH to the server as root and run certbot. Here's an example:
# certbot --Nginx --redirect -d example.com -d www.example.com -m admin@example.com --agree-tos2. Verify Automatic RenewalLet's Encrypt certificates are valid for 90 days. The certbot wizard updates the systemd timers and crontab to automatically renew your certificate.

  1. Verify the timer is active.
    # systemctl list-timers | grep 'certbot|ACTIVATES'
  2. Verify the crontab entry exists.# ls -l /etc/cron.d/certbot
  3. Verify the renewal process works with a dry run.
    # certbot renew --dry-run
安装好证书就试试https访问,正常的话域名前面有个小锁的图标,点击可以查看证书有效期 。
本站测试https下安装证书ok,但是发现http不会自动跳转https,于是便着手解决,那就是第二部分内容 。
二、强制HTTP跳转HTTPS按说第一步命令已包含强制跳转
--redirect
Redirect all HTTP requests to HTTPS.
无奈只有手动解决,巧的是vultr官网也有这个问题解决办法 。
Redirect HTTP Requests To HTTPS On Nginx
主要就是增加几行代码,其中加粗的是重中之重,稍后再说 。
server {
listen 80;
server_name example.com www.example.com;
# Redirect all port 80 (HTTP) requests to port 443 (HTTPS).
return 301 https://example.com$request_uri;
}
以为按上面添加几行就皆大欢喜?没呢,最后还有命令,让配置文件生效 。
本人用的是service nginx reload 。终于搞定!
安装好SSL证书并强制HTTP转HTTPS

文章插图
 

安装好SSL证书并强制HTTP转HTTPS

文章插图
 

安装好SSL证书并强制HTTP转HTTPS

文章插图
 
命令参考如下:
nginx -s signal
signal 的值如下:
stop:fast shutdown,快速的停止 nginx
quit:graceful shutdown,不再接受新的请求,等正在处理的请求出完成后在进行停止(优雅的关闭)
reload:reloading the configuration file,重新加载配置文件
reopen:reopening the log files,重新写入日志文件
文末补充以上操作的软硬件环境:
硬件:苹果本M1 macBookPro 16G+1T
软件:利用vultr的官方自带终端
安装好SSL证书并强制HTTP转HTTPS

文章插图
 
【安装好SSL证书并强制HTTP转HTTPS】事后小结、一定要耐心细致,特别是命令的使用 。




    推荐阅读