Tomcat完成免费HTTPS

转载自:网络安全博客
原始链接:

Let's Encrypt是一个免费SSL证书发行项目,发行的证书已经获得主流浏览器的支持,亲测谷歌浏览器(桌面版)、火狐浏览器(桌面版)、UC浏览器(手机版)、360浏览器(手机版)支持,其它的暂没测试;


## Apache 配置 https

先开启ssl :a2enmod ssl
之后建立证书
先建立一个放证书的文件夹,建那里都行: mkdir /home/cert
之后把证书丢到刚才建立的目录:
openssl req -x509 -newkey rsa:1024 -keyout /home/cert/x73.pem -out /home/cert/x73.pem -nodes -days 9999999999999
然后编辑下apache的默认配置文件: vim /etc/apache2/sites-available/default (我比较习惯用nano,vi太尼玛强大了)
打开尼玛的编辑器,在最后一行写入

本文讲解如何使用Let's Encrypt获得免费SSL证书,配置apache的SSL功能,并将请求转发到tomcat

图片 1

> Apache 版本: **2.4.10**
Linux 版本 : **Debian**

<VirtualHost *:443>
ServerSignature On
SSLEngine On
SSLCertificateFile SSL路径(/home/cert/x73.pem)
ServerAdmin [email protected]
DocumentRoot “/网站路径”
php_admin_value open_basedir “/网站路径:/tmp”
ServerName 域名
ServerAlias 域名
CustomLog /网站路径/log-ssl combined
</VirtualHost>

大致思路如下:


### 安装Apache
控制台命令:` sudo apt-get install apache2 `
安装好了Apache2会自动启动,但是自动启动的不包含https仅仅是http

图片 2

    1.使用Let's Encrypt获得SSL证书

  • 自签名证书

  • 配置Apache服务器SSL

  • 自己作为CA签发证书

**默认的配置路径**

然后输入: /etc/init.d/apache2 restart
重启apache服务,当然也可以: service apache2 restart
你就可以用https访问了

    2.开启apache的SSL功能,用户请求首先到apache,使用http协议或者https协议


Apache配置文件路径: ` cd /etc/apache2/`
Apache默认日志路径: `cd /var/log/apache2`

图片 3

    3.apache将请求转发到tomcat上,使用http协议或者ajp协议

这里是OpenSSL和HTTPS的介绍
OpenSSL
HTTPS

### 配置https
####首先
进入Apache的配置文件目录
`cd /etc/apache2/`

原始链接: 先开启ssl : a2enmod ssl 之后建立证书 先建立一个放证书的文件夹,建那里都行: mkd...

这样做的原因有以下几点:

开启HTTPS配置前提是已在Mac上搭建Apache服务器
→Mac上Apache服务器搭建

查看目录结构
`tree`

    1.我的网站是java编写的,需要一个类似于tomcat的servlet容器

先在桌面创建个SSL文件夹,用来放生成的私钥证书文件
打开终端cd到SSL文件夹
cd desktop/SSL

具体的目录结构如下
> apache2.conf
conf-available
conf-enabled
envvars
magic
mods-available
ports.conf
sites-available
sites-enabled

    2.虽然tomcat也支持ssl,但Let's Encrypt原生支持apache,所以在apache上配置ssl比较简单

1. 自签名证书

其中 ** apache2.conf** 是整个Apache的主配置文件,
部分代码
```
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

    3.apache处理静态资源的能力 比tomcat好

(1) 在SSL文件夹中生成私钥
openssl genrsa -out server.key 2048

图片 4

生成rsa私钥,2048位强度,server.key是秘钥文件名

# Include list of ports to listen on
Include ports.conf

    4.可以配置多个tomcat实现负载均衡,可以在不终止服务的情况下重启tomcat

(2) 生成自签名证书
openssl req -new -sha256 -x509 -days 365 -key server.key -out server.crt

图片 5

输入信息

Common Name应该与域名保持一致(如我的电脑搭建的服务器IP地址为192.168.1.112)

图片 6

# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>

一、安装Let's Encrypt

2. 配置Apache服务器SSL

<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>

    Let's Encrypt的项目主页是  ,可以使用git下载,也可以到主页直接下载ZIP压缩包

(1) 放入证书

server.crtserver.key两个文件拷贝
放到/etc/apache2/目录

<Directory /var/www/>
Options Indexes FollowSymLinks
nclude module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

    进入文件夹中,执行如下命令,之后Let's Encrypt会安装一些软件

(2) 修改配置文件
  • 编辑/etc/apache2/httpd.conf文件
    去掉下面三行的注释#号

    LoadModule ssl_module libexec/apache2/mod_ssl.so
    Include /private/etc/apache2/extra/httpd-vhosts.conf
    Include /private/etc/apache2/extra/httpd-ssl.conf

  • 打开/etc/apache2/extra/httpd-ssl.conf文件
    去掉以下两项注释并检查是否与之前安装私钥和证书的路径一致

    SSLCertificateFile "/etc/apache2/extra/ssl/server.crt"
    SSLCertificateKeyFile "/etc/apache2/extra/ssl/private.key"

  • 编辑/etc/apache2/extra/httpd-vhosts.conf文件
    在<VirtualHost *:80> .....</VirtualHost>后面添加一段如下内容:
<VirtualHost *:443>
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4 RSA: HIGH: MEDIUM: LOW: SSLv2: EXP: eNULL
    SSLCertificateFile /private/etc/apache2/server.crt
    SSLCertificateKeyFile /private/etc/apache2/server.key
    ServerName 192.168.1.112 
    DocumentRoot "/Library/WebServer/Documents"
</VirtualHost>

注意ServerName填写域名与所需访问一致

# Include list of ports to listen on
Include ports.conf

./letsencrypt-auto --help
(3) 重启服务器
sudo apachectl restart

访问
提示不安全什么的(因为自己的证书没添加到浏览器信任列表),继续访问

图片 7

HTTPS访问成功

HTTPS可以用啦
此处应有掌声

本文由星彩网app下载发布于星彩网app下载,转载请注明出处:Tomcat完成免费HTTPS

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。