📌

【Let's Encrypt】snapd でのSSL導入手順

2023/05/29に公開

snapdのインストール

$ yum -y install snapd

snapのバージョンは確認はsnap --version

snapdの有効化

$ systemctl start snapd
$ systemctl enable snapd

シンボリックリンク設定

$ ln -s /var/lib/snapd/snap /snap

snapdが最新であることの確認

$ snap install core;
$ snap refresh core ;

yumでcertbotをインストールしていた場合は削除

$ yum -y remove certbot

snapでcertbotをインストール

$ snap install --classic certbot

certbotコマンドを有効化設定

$ ln -s /snap/bin/certbot /usr/bin/certbot

既にSSL証明書が発行済みの場合は削除

$ rm -rf /etc/letsencrypt/archive/対象ドメイン
$ rm -rf /etc/letsencrypt/live/対象ドメイン
$ rm -rf /etc/letsencrypt/renewal/対象ドメイン.conf

SSL証明書の発行

$ certbot certonly -m example@mail.jp --agree-tos --non-interactive --webroot -w /path/to/webroot -d ドメイン名 -d www.ドメイン名
# phpMyAdminのSSLも同時に発行する場合
$ certbot certonly -m example@mail.jp --agree-tos --non-interactive --webroot -w /path/to/webroot -d ドメイン名 -d www.ドメイン名 -w /usr/share/phpMyAdmin -d phpmyadmin.ドメイン名

SSL証明書の確認

指定したドメイン名でSSLが発行されているか確認します。

$ ll /etc/letsencrypt/live/

confファイルの修正

$ vi /etc/nginx/conf.d/hoge.conf

server {
      listen 80;
      server_name hoge.jp www.hoge.jp;
      root   /path/to/hoge/webroot;

# 追記ここから
      return 301 https://www.hoge.jp$request_uri;
}
server {
    listen       443;
    server_name  www.hoge.jp ssl http2;
    if ($host !~ ^www.hoge.jp) {
        return 301 https://www.hoge.jp$request_uri;
    }
    ssl on;
    ssl_certificate /etc/letsencrypt/live/hoge.jp/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/hoge.jp/privkey.pem;
# 追記ここまで

  location / {
      index  index.php index.html index.html;
      try_files $uri $uri/ /index.php?$args;
  }
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
  }
  location ~ \.php$ {
      fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
      fastcgi_index  index.php;
      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      include        fastcgi_params;
  }
}

再起動

$ systemctl restart nginx

Discussion