上一篇文章已经介绍了如何在CentOS7环境下安装SVN并整合HTTP访问

http://www.cnblogs.com/fjping0606/p/7581093.html

那么本文则介绍如何添加HTTPS证书加密访问SVN(apache环境)

打开/opt/apache/conf/httpd.conf

#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

去掉注释:

loadModule socache_shmcb_module modules/mod_socache_shmcb.so

#LoadModule ssl_module modules/mod_ssl.so

去掉注释:

LoadModule ssl_module modules/mod_ssl.so

#Include conf/extra/httpd-ssl.conf

去掉注释:

Include conf/extra/httpd-ssl.conf

保存并退出httpd.conf

打开/opt/apache/conf/extra/httpd-vhosts.conf

添加以下内容

<VirtualHost _default_:443>

DocumentRoot "/data/subversion"                           ##svn仓库目录

ServerName svn.test.com:443                                ##上一篇文件配置的访问svn的域名

ServerAlias svn.test.com

ServerAdmin webmaster@example.com

DirectoryIndex index.html index.htm index.php default.php app.php u.php

ErrorLog logs/example_error.log

CustomLog logs/example_access.log \

"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

SSLEngine on

SSLCertificateFile "/opt/apache/ssl/2_svn.test.com.crt"         ##在腾讯云申请的https证书

SSLCertificateKeyFile "/opt/apache/ssl/3_svn.test.com.key"

SSLCertificateChainFile "/opt/apache/ssl/1_root_bundle.crt"

<Directory "svn.test.com">

SSLOptions +StdEnvVars

AllowOverride All

Require all granted

</Directory>

<FilesMatch "\.(shtml|phtml|php)$">

SSLOptions +StdEnvVars

</FilesMatch>

BrowserMatch "MSIE [2-5]" \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

</VirtualHost>

保存并退出httpd-vhost.conf

如果此时尝试重启http,会报错,因为还缺少两个文件(/opt/apache/conf/extra/httpd-ssl.conf):

/opt/apache/conf/server.crt

/opt/apache/conf/server.key

下面介绍如何生成这两个文件

由于Centos 7移除了Openssl的MD5支持,所以会在下面最后一步生成server.crt的时候报错( ./sign-server-cert.sh server ):

error 7 at 0 depth lookup:certificate signature failure

配置在CentOS 7上启用MD5支持

1、暂时启用,在命令行下直接执行

export NSS_HASH_ALG_SUPPORT=+MD5

export OPENSSL_ENABLE_MD5_VERIFY=1

2、通过NetworkManager启用MD5支持

vim /usr/lib/systemd/system/NetworkManager.service

追加下面内容:

[Service]

Environment="OPENSSL_ENABLE_MD5_VERIFY=1 NSS_HASH_ALG_SUPPORT=+MD5"

并重新启动守护进程

systemctl daemon-reload

systemctl restart NetworkManager.service

开始配置生成证书

wget  ftp://ftp.pl.vim.org/vol/rzm4/replay.old/mirror/ftp.modssl.org/mod_ssl_contrib/ssl.ca-0.1.tar.gz

tar zxvf ssl.ca-0.1.tar.gz

cd ssl.ca-0.1

./new-root-ca.sh (生成根证书)

No Root CA key round. Generating one

Generating RSA private key, 1024 bit long modulus

...........................++++++

....++++++

e is 65537 (0x10001)

Enter pass phrase for ca.key: (输入一个密码)

Verifying - Enter pass phrase for ca.key: (再输入一次密码)

......

Self-sign the root CA... (签署根证书)

Enter pass phrase for ca.key: (输入刚刚设置的密码)

........

........ (下面开始签署)

Country Name (2 letter code) [MY]:CN

State or Province Name (full name) [Perak]:GuangDong

Locality Name (eg, city) [Sitiawan]:GuangZhou

Organization Name (eg, company) [My Directory Sdn Bhd]:leishen

Organizational Unit Name (eg, section) [Certification Services Division]:kuaiyin

Common Name (eg, MD Root CA) []:H5 CA

Email Address []:dami_cn@163.com

这样就生成了ca.key和ca.crt两个文件,下面还要为我们的服务器生成一个证书:

./new-server-cert.sh server (这个证书的名字是server)

......

......

Country Name (2 letter code) [MY]:CN

State or Province Name (full name) [Perak]:GuangDong

Locality Name (eg, city) [Sitiawan]:GuangZhou

Organization Name (eg, company) [My Directory Sdn Bhd]:leishen

Organizational Unit Name (eg, section) [Secure Web Server]:kuaiyin

Common Name (eg, www.domain.com) []:svn.test.com       ##注意这个Common Name不能和上面第一个Common Name设置相同

Email Address []:dami_cn@163.com

这样就生成了server.csr和server.key这两个文件。

还需要签署一下才能使用的:

./sign-server-cert.sh server

CA signing: server.csr -> server.crt:

Using configuration from ca.config

Enter pass phrase for ./ca.key:            (输入上面设置的根证书密码)

Check that the request matches the signature

Signature ok

The Subject's Distinguished Name is as follows

countryName           :PRINTABLE:'CN'

stateOrProvinceName   :PRINTABLE:'GuangDong'

localityName          :PRINTABLE:'GuangZhou'

organizationName      :PRINTABLE:'leishen'

organizationalUnitName:PRINTABLE:'kuaiyin'

commonName            :PRINTABLE:'svn.test.com'

emailAddress          :IA5STRING:'dami_cn@163.com'

Certificate is to be certified until Jan 27 12:05:17 2019 GMT (365 days)

Sign the certificate? [y/n]: y

1 out of 1 certificate requests certified, commit? [y/n] y

Write out database with 1 new entries

Data Base Updated

CA verifying: server.crt <-> CA cert

server.crt: OK

(如果这里出现错误,最好重新来过,删除ssl.ca-0.1这个目录,从解压缩处重新开始。)

完成上面步骤,就生成了server.crt server.key两个文件

将这两个文件拷贝到/opt/apache/conf/

然后重启http

/opt/apache/bin/apachectl restart

完成上面所有步骤,就可以使用https访问svn域名了

https://svn.test.com/leishen/mysvn

参考文章

http://www.eit.name/catool/

http://blog.csdn.net/magicbreaker/article/details/1566742

http://www.zeali.net/entry/532

http://software-engineer.gatsbylee.com/centos7openvpn-verify-error-depth0-errorcertificate-signature-failure/

http://php.upupw.net/apache/6/6325.html              配置HTTP强制跳转到HTTPS

CentOS 7 配置HTTPS加密访问SVN的更多相关文章

  1. lnmp之Nginx配置https加密访问

    配置lnmp之Nginx网站支持https加密访问 注: 1. 这里拿购买的(pxsnx.pxjy.com)证书来做样例 证书文件共有三个---> (pxsnxg.pxjy.com_ca.crt ...

  2. 【转】Linux下nginx配置https协议访问的方法

    一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...

  3. Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置

    Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置 ============================== ©Copyright 蕃薯耀 2017 ...

  4. 我用阿里云的虚拟云主机,也能配置https加密吗?

    我用阿里云的虚拟云主机,也能配置https加密吗?答案是YES. 整个过程比想象中还要简单,都是一些基本的配置,虚拟主机 Web托管都可以很容易的搞定https. 首先我们要了解一下,阿里云是怎么支持 ...

  5. Linux服务之nginx服务篇四(配置https协议访问)

    一.配置nginx支持https协议访问 编译安装nginx的时候需要添加相应的模块--with-http_ssl_module和--with-http_gzip_static_module(可通过/ ...

  6. Tomcat配置https协议访问

    Tomcat9配置https协议访问: https://blog.csdn.net/weixin_42273374/article/details/81010203 配置Tomcat使用https协议 ...

  7. 为阿里云域名配置免费SSL支持https加密访问简单教程

    阿里云之前有免费ssl入口申请,现在已经关闭了.那么现在怎么为自己的域名配置https呢? 首先打开阿里云域名控制台,如以下界面.(这里暂且用我的这个域名讲解吧)  如上图点击ssl证书,点击单域名免 ...

  8. Nginx采用https加密访问后出现的问题

    线上的一个网站运行了一段时间,应领导要求,将其访问方式更改为https加密方式.更改为https后,网站访问正常,但网站注册功能不能正常使用了! 经过排查,是nginx配置里结合php部分漏洞了一个参 ...

  9. 【原创】CA证书申请+IIS配置HTTPS+默认访问https路径

    一.CA证书申请 (一). 新StartSSL注册帐号 1.    StartSSL官网 官方网站:https://www.startssl.com/ 2.    进入到StartSSL后,直接点击注 ...

随机推荐

  1. HTML页面滚动时获取离页面顶部的距离2种实现方法

    获取离滚动页面的顶部距离有两种方法一是DOM:而是jquery,具体的实现如下,感兴趣的朋友可以尝试操作下     方法一:DOM 复制代码 代码如下: <script> window.o ...

  2. BZOJ1067 [SCOI2007]降雨量 线段树

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1067 题意概括 给定n组整数对(Xi,Yi),当Xi<Xj且Yi>=Yj时,如果对于任 ...

  3. 015 在大数据中,关于mapreduce的粗略优化,以及mapreduce的处理过程解释

    使用的案例是wordcountmapreduce的程序演示 一: 1.源程序 2.优化的切入点 3.优化的部分代码 二:wordcount的处理过程 1.重点 一个块对应一个map任务. 而做单词统计 ...

  4. Linux 运行Python文件,不因终端关闭而终止运行

    在Linux服务器运行py文件时,有时会因为终端窗口的关闭而结束py文件的执行,这时候使用下面的命令运行py文件: $nohup python filename.py & 命令解释: nohu ...

  5. AngularJS之双向数据绑定,class绑定

    之前一直都是用vue来完成一些日常开发,初入AngularJS,记录一些日常开发遇到的问题. 1.双向数据绑定 AngularJS与vue的区别在于,vue采用的是虚拟DOM,模板文件上绑定的一大堆指 ...

  6. 11,EasyNetQ-调度事件与定时发布

    许多业务流程都要求将事件安排在未来的某个日期. 例如,在与客户进行初次销售联系之后,我们可能希望在将来某个时间安排后续电话. EasyNetQ可以通过其未来发布功能帮助您实现此功能. 例如,我们在这里 ...

  7. manjaro 配置 独立显卡驱动

    参考 https://blog.csdn.net/weixin_42205310/article/details/81905293 尝试多次 只有这篇配置成功. ①先解决依赖sudo pacman - ...

  8. Egret 之 消除游戏 开发 PART 6 Egret elimination game development PART 6

    Egret 之 消除游戏 开发 PART 6 Egret elimination game development PART 6 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱: ...

  9. BZOJ.4293.[PA2015]Siano(线段树)

    题目链接 \(Description\) 有一片n亩的土地,要在这上面种草. 在每一亩土地上都种植了一种独一无二的草,其中,第\(i\)亩土地的草每天会长高\(a[i]\)厘米. 一共会进行\(m\) ...

  10. 学JAVA二十一天,自定义数组

    今天就说一下自定义数组,至于要怎么用,我也不知道,反正逼格挺高的. 闲话不多说,开始: 首先,自定义数组首先要创建一个类,用来做自定义数组的类型. public class User{ private ...