SSL証明書更新・自動更新（win-acme）➁

### 【この記事を読むのは、こんなことに困った時】

➀SSL証明書更新の方法がわからない時　◀[前回記事](https://qiita.com/kusaharajiji/items/bba526555f515967ecb9)
➁SSL証明書更新は手動でできるが自動更新にしたい時　◀今回はここ

---

#### ＜前提＞

PC：Windows
Webサーバー：IIS
キャッシュサーバーとして：Nginx
SSL証明書：win-acmeで取得していること

※この記事は既にwin-acmeでSSL証明書を発行している前提です。

---

### 【解決方法】

「タスクスケジューラーで更新作業を設定する」

[前回の記事](https://qiita.com/kusaharajiji/items/bba526555f515967ecb9)で行った手順をすべてタスク化して更新時期を繰り返し毎月や毎日など必要に応じて設定。

<br>

---

### 【解決手順】

##### 1.タスクスケジューラーを開く

　→左下のWindowsの窓マーク→Windows管理ツール→タスク スケジューラー



##### 2.タスクの作成

　操作(A)→タスクの作成(R)
　※新規ファイル作成してその中に作成するといいかも。



##### 3.SSL更新用タスク作成の設定（項目：「全般」）

```
　名前：SSL自動更新　※お好きなタスク名
　セキュリティオプション：
　　✅ユーザーがログオンしているかどうかにかかわらず実行する
　　✅最上位の特権で実行する
　構成：Windows　Server　2019　※ご自身のサーバーに合わせてください。
```
＜設定後の画面＞
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661441/26c2dd0c-4f2c-28a0-14cb-39171a7ffeaf.png)



##### 4.SSL更新用タスク作成の設定（項目：「トリガー」）

```
　【設定】
　　✅毎日(D)
　　開始(S)：（開始したい日）_（実行する時間）
　　間隔(C)：１日
　【詳細設定】
　　✅有効
```


＜設定画面＞
![2-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661441/37b2f33f-2fcb-5914-259a-3e60b5369387.png)


＜設定後以下のようになる＞
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661441/776d5bee-230c-7418-7fc7-ec45bc40b049.png)


##### 5.SSL更新用タスク作成の設定（項目：「操作」）
```
　【事前準備】
　　・３つのタスク（Nginxの停止→SSLの更新→Nginxの開始）の為の準備
　　　➀Nginx停止コマンド用.batファイルを作成
　　　➁SSL更新時に必要なwin-acmeのファイル位置把握
　　　➂Nginx開始コマンド用.batファイルを作成
　　
     ※バッヂファイル(.bat)は中にコマンドを書いて、拡張子を.batに変更すると作成できる。
　　　　開くとそのコマンドが実行される。今回は停止用「nssm stop Nginx_1.18.0」開始用「nssm start Nginx_1.18.0」それぞれに対してファイルを１つずつ作成する。

　【タスク設定３つ】
　　➀➂はプログラム/スクリプト(P)を選択するのみ。（バッヂファイルを参照から選択）
　　➁SSL更新はwin-acmeのファイルを開くだけではだめなのでプログラム/スクリプト(P)を選択し、引数の追加設定(オプション)(A)：に「--renew」を設定

　【設定】
　　プログラム/スクリプト(P)：
　　　参照から実行したいファイルを選択する。　➀➁➂すべてのタスクで設定
　　　引数の追加設定（オプション）（A）:--renew　➁のみのタスクで設定
　　　　
　　※設定後の画面で３タスクが実行したい順番に並んでいればOK

```
＜設定画面＞
![3-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661441/a8cb07df-a361-5400-581a-36c4edd7a190.png)

＜設定後以下のようになる＞
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661441/b7cf859f-554d-5d40-3832-a56123ed6b2d.png)


##### 6.SSL更新用タスク作成の設定（項目：「条件」）

```
 【電源】
　　✅コンピューターAC電源で使用している場合のみタスクを開始する(P)
　　　✅コンピューターの電源をバッテリに切り替える場合は停止する(B)
```

＜設定画面＞
![4-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661441/d40776ba-5654-80bc-e65b-b02c6014a8a1.png)

＜設定後以下のようになる＞
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661441/76077508-d83b-9d64-c85c-9f66c38ad74e.png)


##### 7.SSL更新用タスク作成の設定（項目：「設定」）

```
✅タスクを要求時に実行する(L)
✅タスクを停止するまでの間の時間(K):　3日間
✅要求時に実行中のタスクが終了しない場合、タスクを強制的に停止する(F):
```
＜設定画面＞
![スクリーンショット 2022-09-12 113516.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661441/ced388db-459b-e31f-5ede-6ed942fce794.png)

＜設定後以下のようになる＞
![スクリーンショット 2022-09-12 094333.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661441/00715b88-aa61-c14c-5172-8a5effdc0101.png)

##### 7.タスク設定が完了したので確認テスト

　タスク時間まで待つことなく実行ボタンで確認できる。
　履歴タグからも実行履歴を確認することができる。
　エラーが出ていなくタスクが思っていいた通り実行完了していれば自動化完了です！

　エラーの場合は参照のファイルパスやコマンドの違い、タスク順の確認などしてみよう。

　。。。あと、バッヂファイルはデスクトップにそのまま設置してしまうと誤って押してしまい実行しないようにだけ注意です！＞＜

### 　　　　　　　　～☆完了！☆～

タスクスケジューラーで解決する以外にもポート番号を変える方法もありそうですね。
SSL証明書の更新は検索で出てくることが多いのですが、キャッシュサーバとの関連による更新エラーの対応など、
応用して解決していく問題にはまだまだ疎いと感じました。
<br>

---

#### 【気になるワード】---記事内でより理解を深めたいワード

・[バッヂファイルの作成、使用方法](https://it-trend.jp/development_tools/article/32-0040)
・Windowsのタスクスケジューラーの活用
・Macではタスクスケジューラーの代用になるものがあるのか
・SSL更新をタスクで何度も行っても期限が更新されるわけではないのか？