5/3 nginxでSSL対応サイトが作れて嬉しい!
目標・やりたい事は何か?何に興味あるか?
- rubymineインストール
- rubymineでメモをとる
- Gitの勉強
- 猿でもわかるgit入門
日常メモ・ちょっとした事・何を感じたか?
- 問題点を成長だととらえられるフレームワークをちゅっと模索
- 少しずつ日記に反映したい
- やりたいことと技術力のバランスが大事かなと最近思う。どっちかに偏りすぎるのはあまりヘルシーじゃないかも
- sslができて泣いちゃうぐらいに嬉しかった!
何を学んだか?・何がまだ理解できてないのか?
- 少し前のログから解決策が出てくることを学んだ
- 証明書の置き場を考えてなかった。PATHを意識せねば
- プロセスを消すためにKillコマンドした。緊張した。
- サーバーの再起動でエラー解決。 テラテイルで同じ悩みをもつ人がいた。
- 先頭にhttps:// をつけるのをしてなくてオレオレ証明書が出来ない原因が他にあると思い嵌った
- ドメイン変えたら上手くいった。もしかして、オレオレ証明書と Let's Encryptで証明書が1つのドメインに2つ証明書があったらだめかも
- Deeplの翻訳精度が高くて、Linuxのエラーを読める。
勉強メモ
(桜・_・VPS) 17:39:50 :~$ su
root# cd /etc/ssl
/etc/ssl# openssl genrsa 2048 > server.key
Generating RSA private key, 2048 bit long modulus (2 primes)
........................................................................................................+++++
.............+++++
e is 65537 (0x010001)
/etc/ssl# openssl req -new -key server.key > server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:TOKYO
Locality Name (eg, city) []:SETAGAYAKU
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:www.nekonohimitu.work
Email Address []:akatukijun@gmail.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
/etc/ssl# openssl req -text < server.csr
/etc/ssl# openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt
Signature ok
subject=C = JP, ST = TOKYO, L = SETAGAYAKU, O = Internet Widgits Pty Ltd, CN = www.nekonohimitu.work, emailAddress = akatukijun@gmail.com
Getting Private key
/etc/ssl# openssl x509 -text < server.crt
/etc/ssl# ls /etc/ssl
certs openssl.cnf private server.crt server.csr server.key
$ apt-get --purge openssl
(桜・_・VPS) 15:26:04 :~$ sudo vim /etc/nginx/sites-available/nekonohimitu.work
server {
listen 443 ssl;
server_name www.nekonohimitu.work;
ssl on;
ssl_certificate /etc/ssl/server.crt;
ssl_certificate_key /etc/ssl/server.key;
access_log /srv/www.nekonohimitu.work/log/access.log;
error_log /srv/www.nekonohimitu.work/log/error.log;
location / {
root /srv/www.nekonohimitu.work/public/;
index indexssl.html;
}
}
$ sudo service nginx reload
Let's Encryptで証明書を取ってVirtualhost + SSL対応サイトを作る
- こちらのサイトでnginx,Debian10と入力するとコマンドを教えてくれる
certbot
# certbotのインストール
sudo apt-get install certbot python-certbot-nginx
## 証明書の取得 80番と443番ポートを開けておく必要がある nginxをstopして
(桜・_・VPS) 19:12:40 :~$ sudo certbot certonly --nginx
#証明書の場所確認
(桜・_・VPS) 19:18:14 :~$ sudo ls /etc/letsencrypt/live/
enginxnohimitu.work README www.nekonohimitu.work
# 発行された証明書たちを確認
(桜・_・VPS) 12:06:12 :~$ sudo ls -l /etc/letsencrypt/live/enginxnohimitu.work
total 4
lrwxrwxrwx 1 root root 43 May 2 20:24 cert.pem -> ../../archive/enginxnohimitu.work/cert1.pem
lrwxrwxrwx 1 root root 44 May 2 20:24 chain.pem -> ../../archive/enginxnohimitu.work/chain1.pem
lrwxrwxrwx 1 root root 48 May 2 20:24 fullchain.pem -> ../../archive/enginxnohimitu.work/fullchain1.pem
lrwxrwxrwx 1 root root 46 May 2 20:24 privkey.pem -> ../../archive/enginxnohimitu.work/privkey1.pem
-rw-r--r-- 1 root root 692 May 2 20:24 README
# cert.pem 証明書
# chain.pem 中間証明書
# fullchain.pem 証明書+中間証明書の連結ファイル
# privkey.pem 秘密鍵
# confファイルには
# ssl_certificate:証明書+中間証明書の連結ファイル(fullchain.pem)
# ssl_certificate_key:秘密鍵(privkey.pem)
# を設定する。
#hymlの編集
/srv/enginxnohimitu.work/public/index.html
/srv/enginxnohimitu.work/public/sslindex.html #ssl用のhtml
# enginxnohimitu.workの設定ファイル
(桜・_・VPS) 20:43:51 :~$ sudo vim /etc/nginx/sites-available/enginxnohimitu.work
server {
listen 443 ssl;
server_name enginxnohimitu.work;
ssl_certificate /etc/letsencrypt/live/enginxnohimitu.work/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/enginxnohimitu.work/privkey.pem;
access_log /srv/enginxnohimitu.work/log/access.log;
error_log /srv/enginxnohimitu.work/log/error.log;
location / {
root /srv/enginxnohimitu.work/public/;
index sslindex.html; #ssl用のhtmlのパス
}
}
server {
listen 80;
server_name enginxnohimitu.work;
access_log /srv/enginxnohimitu.work/log/access.log;
error_log /srv/enginxnohimitu.work/log/error.log;
location / {
root /srv/enginxnohimitu.work/public/;
index index.html;
}
}
#nginx止める
(桜・_・VPS) 20:43:08 :~$ sudo /etc/init.d/nginx stop
[ ok ] Stopping nginx (via systemctl): nginx.service.
#nginxをスタート
(桜・_・VPS) 20:43:42 :~$ sudo /etc/init.d/nginx start
[ ok ] Starting nginx (via systemctl): nginx.service.
# nginx.confを再読込
(桜・_・VPS) 20:43:46 :~$ sudo service nginx reload
参考
- nginxの最近のブログ記事
- nginx1
- nginx2
- nginx3
- nginx4
- nginx5
- nginx6
- VirtualHostについて(動画)
- memcachedを知り尽くす
- 猫とテニス。nginx
- 自作のHTMLをインターネットで配信する方法
- [033] Nginxのインストール
- nginxバーチャルホスト
- Nginx NOT FOUNDになる時のログの見方
- sslの概念
- オレオレ証明書をopensslで作る(詳細版) - ろば電子が詰まっている
- プログラミングビギナーNekoteniがあなたに贈る!NginxでSSLの巻
- nginx で ssl 設定をする
- もう二度とハマらない、SSL証明書の設定
- もう二度とハマらない、SSL個人認証局の設定
- サーバ証明書の作成