您的位置:首页 > 运维架构 > Apache

UBUNTU下的APACHE 与SpringBoot、SSL整合

2017-11-28 00:00 489 查看
我一直想写点什么,今天就从这里开始写吧。网上有很多讲述apache2+SSl+tomcat的帖子,折腾了半天,俺也没折腾成功,指导看到老外的帖子

https://stormpath.com/blog/secure-spring-boot-webapp-apache-letsencrypt-ssl

然后我自己做了做试验,在UBUNTU 16.04下算是成功了。

总体来说,应该是 apache2 + mod_jk + springboot + ssl的配置方法吧。

首先,在SpringBoot下的开发,跟常规的springboot(http,tomcat内核)开发差不多,唯一多的是得增加一个类

@Configuration
public class EmbeddedTomcatConfiguration {

@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
Connector additionalConnectors = this.additionalConnector();
tomcat.addAdditionalTomcatConnectors(additionalConnectors);
return tomcat;
}

private Connector additionalConnector() {
System.out.println("---***000000000000000000000000000000000000000000----");
Connector connector = new Connector(
"org.apache.coyote.ajp.AjpNioProtocol");
connector.setScheme("http");
connector.setPort(8009);
return connector;
}

}

它保证SpringBoot在8009端口上打开AJP服务,其他的工作照常。

然后:在ubuntu 下首先安装 apache2

sudo apt-get install apache2

之后安装 mod_jk插件

sudo apt-get install libapache2-mod-jk

安装完毕,可以开始配置

首先是: /etc/libapache2-mod-jk/workers.properties 文件

将:workers.tomcat_home、workers.java_home对应的tomcat home/java home改对。(注:比较忙乱,tomcat_home是否有效,我没有验证,反正病急乱投医的时候,我在用户目录下是装了个tomcat8,但是没启用,所以这个是否必须,欢迎看官们验证之后告诉我)。

之后:worker.list=ajp13_worker,jk-status,jk-manager

OK,workers.properties 文件处理完毕

再然后:开始生成密钥文件。

在 /etc/apache2目录下:

$:mkdir ssl

$:cd ssl

$:openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key

生成好文件,然后修改 /etc/apache2/sites-available/000-default-le-ssl.conf

内容如下:

<VirtualHost *.443 >
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
JkMount /* ajp13_worker


RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/


文件配置完成,然后我们开始做一些启动前的准备工作。

sudo a2enmod proxy

sudo a2enmod proxy_ajp

然后重新启动

sudo /etc/init.d/apache2 restart

启动SpringBoot程序

It works!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息