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!
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!
相关文章推荐
- spring boot 整合mybatis org.apache.ibatis.binding.BindingException: Invalid bound statement(not found)
- Spring Boot整合Apache Shiro小节
- springboot 整合apache shiro
- SpringBoot 整合 Apache ActiveMQ
- Spring-boot整合Quartz,3、动态配置定时任务
- Springboot整合RocketMQ使用心得
- [小技巧]关于spring boot 整合mybatis-plus: value为null时不返回的问题。
- Apache Shiro 整合Spring 进行权限验证 以及在Freemarker中使用shiro标签
- Spring 整合 Apache Shiro 实现各等级的权限管理
- spring boot 整合mongodb
- 基于SpringBoot的Mybatis-Plus插件整合
- spring boot的gradle整合日志
- Spring Boot与MyBatis整合
- springboot 整合beetl
- Angular2 和springboot 整合后 url 解析出现的问题解决方案
- Spring Boot 整合 log4j 实现日志管理
- Springboot整合mybatis将sql打印到日志
- SpringBoot整合ElasticSearch的示例代码
- 整合springboot-mybatis提供RESTful风格SaaS服务
- idea整合 spring boot jsp mybatis