编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

宝塔Linux面板Java项目开启SSL(非一键https)

在写这篇文章时,我使用的宝塔版本是免费版 6.9.6,这个版本的宝塔Java项目一键开启SSL还是存在问题的。

如果你在Liunx下部署Java还有问题,那么参考我前面的这篇文章:宝塔Linux面板部署Java项目

在开始开启SSL前,惯例,还是介绍下服务器的环境,不要因为环境相差很多导致部署失败,认为我的文章写的有问题。

1、服务器用的是阿里云

2、系统是CentOS Linux 7.6.1810 (Core)

3、安装了如下软件

Apache 2.4.39

MySQL 5.5.62

PHP-5.6

Java项目管理器

好了,核心环境就介绍到这里,下面开始介绍如何手动开启SSL。

1、首先,申请证书,我习惯用腾讯云的。

因为腾讯的ssl申请比较贴心,申请完成后,Apache、IIS、Nginx、Tomcat的证书都帮我们申请好了

申请好的SSL证书

下载完SSL证书后,我们把证书放到/etc/letsencrypt/live目录下。当然你也可以放到其他目录,如果我们使用的是宝塔的面板,宝塔意见SSL之后,都是把证书放到该目录下的,为了方便管理,我们也把SSL证书放到该目录下。

2、因为我用的是apache,所以是在apache下配置SSL的。

在这里,提一句的是,我们上步上传的是Apache下的SSL证书。

我们来到目录/www/server/panel/vhost/apache下,找到你需要开启SSL的网站的配置文件,一般是www.xxx.com.conf文件。

如果你的网站没有配置过https,正常打开,我们是只能看到VirtualHost *:80的配置的,类似如下:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    DocumentRoot "/www/wwwroot/java_cms"
    ServerName ba446561.www.xxx.com
    ServerAlias www.xxx.com
    #errorDocument 404 /404.html
    ErrorLog "/www/wwwlogs/www.xxx.com-error_log"
    CustomLog "/www/wwwlogs/www.xxx.com-access_log" combined
#引用反向代理规则,注释后配置的反向代理将无效
IncludeOptional /www/server/panel/vhost/apache/proxy/www.xxx.com/*.conf
    
    #DENY FILES
     <Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$>
       Order allow,deny
       Deny from all
    </Files>
    
    #PHP
    <FilesMatch \.php$>
            SetHandler "proxy:unix:/tmp/php-cgi-00.sock|fcgi://localhost"
    </FilesMatch>
    
    #PATH
    <Directory "/www/wwwroot/java_cms">
        SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Require all granted
        DirectoryIndex index.php index.html index.htm default.php default.html default.htm
    </Directory>
</VirtualHost>

我们复制该段,放到</VirtualHost>标签后,进行如下修改

<VirtualHost *:443>
    ServerAdmin webmaster@example.com
    DocumentRoot "/www/wwwroot/java_cms"
    ServerName www.xxx.com
    ServerAlias www.xxx.com
    #errorDocument 404 /404.html
    ErrorLog "/www/wwwlogs/www.xxx.com-error_log"
    CustomLog "/www/wwwlogs/www.xxx.com-access_log" combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www.xxx.com/2_www.xxx.com.crt
SSLCertificateKeyFile /etc/letsencrypt/live/www.xxx.com/3_www.xxx.com.key
SSLCertificateChainFile /etc/letsencrypt/live/www.xxx.com/1_root_bundle.crt
#引用反向代理规则,注释后配置的反向代理将无效
IncludeOptional /www/server/panel/vhost/apache/proxy/www.xxx.com/*.conf
    
    #DENY FILES
     <Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$>
       Order allow,deny
       Deny from all
    </Files>
    
    #PHP
    <FilesMatch \.php$>
            SetHandler "proxy:unix:/tmp/php-cgi-00.sock|fcgi://localhost"
    </FilesMatch>
    
    #PATH
    <Directory "/www/wwwroot/java_cms">
        SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Require all granted
        DirectoryIndex index.php index.html index.htm default.php default.html default.htm
    </Directory>
</VirtualHost>

修改完后保存,在通过https访问该项目,SSL证书就部署好了,还是很简单的吧?

未经允许不得转载: 技术文章 » IT运维 » 宝塔Linux面板Java项目开启SSL(非一键https)