Config Apache SSL Server + Flask
TIL
618
White

Anh Tran viết ngày 23/03/2018

Step 1: virtualenv

Create virtualenv

    mkdir ~/home/unitec/virtualenv 
    cd ~/home/unitec/virtualenv 
    virtualenv -p python3.6 lcp_nwp

Install needed packages for virtualenv

    cd ~/home/unitec/virtualenv 
    source lcp_nwp/bin/activate
    pip3 install Flask
    pip3 install sqlalchemy
    pip3 install --ignore-installed six
    pip3 install bcrypt
    pip3 install decorator
    pip3 install connexion  

Step 2: Source code folder

Copy source from git folder

    sudo mkdir /var/www/html/lcp_nwp_api
    sudo cp -af /home/lcp/lcp_src_internal/core /var/www/html/lcp_nwp_api/
    sudo cp -af /home/lcp/lcp_src_internal/lcp/lcp_model /var/www/html/lcp_nwp_api/
    sudo cp -af /home/lcp/lcp_src_internal/lcp/lcp_nwp_api/ /var/www/html/lcp_nwp_api/
    sudo cp -af /home/lcp/lcp_src_internal/lcp/lcp_nwp_api/swagger_server   /var/www/html/lcp_nwp_api/
    sudo cp -af /home/lcp/lcp_src_internal/lcp/lcp_nwp_api/lcp_nwp /var/www/html/lcp_nwp_api/

Create wsgi file.

  sudo vi /var/www/html/lcp_nwp/lcp_nwp.wsgi

Edit file with content :

    #!/usr/bin/env python
    import sys
    sys.path.insert(0, '/var/www/html/lcp_nwp_api')
    # /var/www/html/lcp_nwp_api path to source code 
    from swagger_server import application

    if __name__ == '__main__':
        application.run()

Step 3: Apache

Certificate files

sudo mkdir /etc/apache2/tls

Copy all certificate files to /etc/apache2/tls/

Config file

sudo vi /etc/apache2/sites-enabled/default-ssl.conf

Edit conf file with content:

# Path to virtualenv 
WSGIPythonHome /home/unitec/virtualenv/
WSGIPythonPath /home/unitec/virtualenv/lcp_nwp/lib/python3.6/site-packages
    <IfModule mod_ssl.c>
        <VirtualHost _default_:443>
            ServerAdmin admin@example.com
            ServerName your_domain.com
            ServerAlias www.your_domain.com
           # DocumentRoot /var/www/html

            SSLOptions +StdEnvVars +ExportCertData
            # Path to wsgi file
            WSGIScriptAlias / /var/www/html/lcp_nwp_api/lcp_nwp.wsgi
            # Path to source code folder 
            <Directory "/var/www/html/lcp_nwp_api">
                #WSGIProcessGroup lfour
                WSGIApplicationGroup %{GLOBAL}
                Order deny,allow
                Allow from all
            </Directory>
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
            SSLEngine on
            SSLCertificateFile /etc/apache2/tls/server-cert.pem
            SSLCertificateKeyFile /etc/apache2/tls/server-key.pem
            SSLVerifyClient require
            SSLVerifyDepth 10
            SSLCACertificateFile /etc/apache2/tls/cacert.pem
            <FilesMatch "\.(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
            </FilesMatch>
            <Directory /usr/lib/cgi-bin>
                            SSLOptions +StdEnvVars
            </Directory>
            BrowserMatch "MSIE [2-6]" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
            BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
        </VirtualHost>
    </IfModule>

Link sites-available to site-enabled

cd /etc/apache2/sites-enabled/
sudo ln -s default-ssl.conf ../sites-available/default-ssl.conf

Enable SSL module

sudo a2enmod ssl    
sudo service apache2 restart
Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Anh Tran

5 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
1 0
Coding (コーディング) Từ (Link) này, mình xin tóm tắt lại theo quan điểm cá nhân. Trong SQL tồn tại 3 khái niệm logic : True, False, Unknown(NULL) Xếp...
Anh Tran viết 7 tháng trước
1 0
White
1 2
Tham khảo, tóm tắt từ (Link). Cấu trúc của một email Một email sẽ gồm 3 phần chính: Phần mở đầu (前文ーぜんぶん) : Chào hỏi và tự giới thiệu bản thân...
Anh Tran viết 7 tháng trước
1 2
White
1 0
Descriptor Cảm ơn tác giả vì (Link) hay và chất lượng về descriptor. Mình xin copy ví dụ từ bài viết trên. class NonNegativeDescriptor(object):...
Anh Tran viết 7 tháng trước
1 0
Bài viết liên quan
White
0 2
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 3 tháng trước
0 2
White
20 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết gần 2 năm trước
20 1
White
7 0
Có một tuyên ngôn cho chủ nghĩa tối giản trong ngành phần mềm. Link: http://minifesto.org/ Fight for Pareto's law, look for the 20% of effort th...
Cẩm Huỳnh viết 9 ngày trước
7 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
5 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!