61250


プログラミング、開発環境構築の初心者です。

Ubuntu,nginx,gunicorn,DjangoでPythonのwebシステムを開発しています。

ローカルで作ったサイトを、Ubuntu,ncinx,gunicorn,Djangoを使用したサーバーにデプロイし、独自ドメインでのアクセスが可能な状況まで開発しました。  
その後、SSL化に対応させるために、Let's
Encryptを利用してnginxのファイルを設定しているのですが、ファイルの編集を行った後、nginxが起動できない状況です。

解決策について、ご教授していただきないでしょうか？

**エラーログ**

[code]

    * nginx.service - A high performance web server and a reverse proxy server
       Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
       Active: failed (Result: exit-code) since Mon 2019-12-09 10:20:34 JST; 9min ago
         Docs: man:nginx(8)
      Process: 1882 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
    
    Dec 09 10:20:34 ik1-305-12685 systemd[1]: Starting A high performance web server and a reverse proxy server...
    Dec 09 10:20:34 ik1-305-12685 nginx[1882]: nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /etc/nginx/sites-enabled/myblogapp:47
    Dec 09 10:20:34 ik1-305-12685 nginx[1882]: nginx: [emerg] cannot load certificate "/etc/letsencrypt/live/www.harvest-timer.com/fullchain.pem": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No s
    Dec 09 10:20:34 ik1-305-12685 nginx[1882]: nginx: configuration file /etc/nginx/nginx.conf test failed
    Dec 09 10:20:34 ik1-305-12685 systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
    Dec 09 10:20:34 ik1-305-12685 systemd[1]: nginx.service: Failed with result 'exit-code'.
    Dec 09 10:20:34 ik1-305-12685 systemd[1]: Failed to start A high performance web server and a reverse proxy server.
    
[/code]

**nginx設定ファイル**

[code]

    #httpリダイレクト
    server {
        listen 80;
        listen [::]:80;
        server_name harvest-timer.com;
        return 301 https://$host$request_uri;
    }
    
    #wwwリダイレクト
    server {
        listen 80;
        listen 443 ssl;
        server_name www.harvest-timer.com;
        ssl_certificate /etc/letsencrypt/live/www.harvest-timer.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/www.harvest-timer.com/privkey.pem;
        return 301 https://harvest-timer.com$request_uri;
    }
    
    #リダイレクト先設定
    server {
        listen 443 ssl default_server;
        server_name harvest-timer.com;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/harvest-timer.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/harvest-timer.com/privkey.pem;
    
        location = /favicon.ico {access_log off; log_not_found off;}
    
        location /static/ {
                    alias /home/username/myblogapp;
        }
    
        location /static/admin {
                    alias /home/username/dj2/lib/python3.7/site-packages/django/contrib/admin/static/admin;
        }
    
        location / {
                    include proxy_params;
                    proxy_pass http://unix:/home/username/myblogapp/myblogapp.sock;
        }
    
    }
                                                                                                                                                        75,1          Bot
    
[/code]


CC BY-SA 4.0
2019-12-09T02:05:53.890
61249
2019-12-18T17:19:48.987
2019-12-18T17:19:48.987
3060
36988
question
ubuntu nginx ssl letsencrypt
SSLの設定をした後nginxが起動できない


エラーメッセージ「Dec 09 10:20:34 ik1-305-12685 nginx[1882]: nginx: [emerg] cannot load
certificate "/etc/letsencrypt/live/www.harvest-timer.com/fullchain.pem":
BIO_new_file() failed (SSL: error:02001002:system library:fopen:No s」[直訳]（証明書
"/etc/letsencrypt/live/www.harvest-
timer.com/fullchain.pem"が読み込めません）の対処を最初にすべきだと思います。証明書が無ければSSLは出来ませんからね。

"/etc/letsencrypt/live/www.harvest-timer.com/fullchain.pem" というファイルは存在しますか？  
nginxが起動されるディレクトリ(cwd)を確認して、その下に"/etc/letsencrypt/live/www.harvest-
timer.com/fullchain.pem"があることを確認してみてください。  
ファイルのパーミッションの設定のために、読み込めない可能性もあります。


CC BY-SA 4.0
2019-12-09T02:28:16.510
61250
2019-12-09T02:28:16.510
217
61249
answer