IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> SVN配置https访问 - linux服务器 -> 正文阅读

[系统运维]SVN配置https访问 - linux服务器

linux服务器搭建svn+apache+ssl部署环境:
1、linux下svn安装与使用参考链接:linux服务器svn安装与版本控制.
2、linu下svn配置http访问服务参考链接:linux服务器svn配置http访问.
3、linux svn设置开机自启动参考链接: linux svn设置开机自启动.
4、Linux下设置apache httpd服务为自动启动参考链接: Linux下设置apache httpd服务为自动启动.
5、 linux下svn命令使用大全参考链接: linux下svn命令使用大全.

一、配置https请求访问SVN

??通过http访问svn版本库虽然方便,但是http协议均采用明文传输,随便在网络上抓包用户名和密码就可能被泄露了,所以考虑采用https传输,安全性比较高,也就是apache+svn+ssl。希望svn支持https,主要的工作是配置 SSL协议(Secure Sockets Layer 安全套接层)

配置https请求需要先安装apache,配置http访问: linu下svn配置http访问.

1.1 安装SSL模块

未安装SSL模块的,参考以下步骤进行安装:

# 查看ssl是否已安装
openssl version
#未安装的安装openssl
yum -y install openssl
#查看apache是否已经安装了ssl_module
apachectl -t -D DUMP_MODULES|grep ssl
#安装ssl_module模块
yum -y install mod_ssl

1.2 生成服务端数字证书

以下步骤必须在特定文件夹下产生所需的文件,保证输入命令正确,保证产生文件所在文件夹正确,否则后面将发生错误

1、确认文件是否已存在:

#进入目录
cd /etc/pki/CA
# ls查看目录下是否有index.txt    serial这两个文件
ls 
#如果没有index.txt,创建
touch /etc/pki/CA/index.txt
# 如果没有serial,创建serial号文件
echo 00 > /etc/pki/CA/serial

2、生成证书

#进入目录
cd /etc/pki/CA
#(1)生成服务器端    私钥(key文件);
openssl genrsa -des3 -out private/svn_server.key 1024
#这里我的密码设置为:math123456

??运行时会提示输入密码,此密码用于加密key文件(参数des3是加密算法,也可以选用其他安全的算法),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令。
如果不要口令,则使用命令去除口令:
openssl rsa -in svn_server.key -out svn_server_1.key

1

#(2)生成服务器端  证书签名请求文件(csr文件);
openssl req -new -key private/svn_server.key -out certs/svn_server.csr

??生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其 提示一步一步输入要求的个人信息即可(如:Country,province,city,company等).
1
示例:
1

1.3 生成客户端数字证书

#1.生成客户端     私钥(key文件);
openssl genrsa -des3 -out private/svn_client.key 1024
2.生成客户端 证书签名请求文件(csr文件);
openssl req -new -key private/svn_client.key -out certs/svn_client.csr
#注意这里的commonName要与服务端的域名不同(随便取一个)

1

1.4 生成CA证书文件

server.csr与client.csr文件必须有CA的签名才可形成证书.

#1.首先生成CA的key文件:
[root@localhost CA]#openssl genrsa -des3 -out ca.key 1024
#2.生成CA自签名证书:    可以加证书过期时间选项 "-days 365".
 openssl req -new -x509 -key ca.key -out ca.crt
 #注意:注意这里的commonName要与服务端的域名相同

1

1.5 利用CA证书进行签名

openssl ca -in certs/svn_server.csr -out certs/svn_server.crt -cert ca.crt -keyfile ca.key
openssl ca -in certs/svn_client.csr -out certs/svn_client.crt -cert ca.crt -keyfile ca.key

1
2

1.6 配置证书

??执行命令cd /etc/httpd/conf.d/,查看该目录下是否有ssl.conf或者httpd-ssl.conf,如果没有该文件,则需要确认是否已正确安装了ssl_module模块。
编辑配置文件ssl.conf:

gedit /etc/httpd/conf.d/ssl.conf

根据需要编辑以下属性,其中证书文件位置是必须要正确指定的:

#443为默认端口,可指定为其他端口
Listen 443
SSlRandomSeed startup builtin
#指定日志文件位置
ErrorLog logs/ssl_error_log
#指定日志等级
Loglevel warn
<VirtualHost *:443>
#指定域名 - 前面生成证书时填写的域名 
ServerName localhost.localdomain
SSLEngine on
#指定证书文件位置
SSLCertificateFile /etc/pki/CA/certs/svn_server.crt
SSLCertificateKeyFile /etc/pki/CA/private/svn_server_1.key
</VirtualHost>

1.7 配置https请求

gedit /etc/httpd/conf/httpd.conf

在如下位置添加https请求:SSLRequireSSL

<Directory />
Options FollowSymLinks
AllowOverride None
#添加此行
SSLRequireSSL 
</Directory>

1.8 重启验证

# 会提示输入证书密码,输入后即可成功启动
systemctl restart httpd.service
 #查看https是否启动成功
netstat -ntpl|grep 443      
#重启svn服务
pkill svnserve
svnserve -d -r /opt/svn/mathPhysics/
ps -ef|grep svnserve

在浏览器输入网址:https://ip地址:端口号/svn/svn目录/
由于我们自签名的证书不受信任,此时会出现不安全标志,打开高级设置,为此添加信任即可访问。
我的输入网址:https://192.168.0.100/svn/mathPhysics/
1

二、异常处理

??如果以上操作后,访问仍然有异常,可以查看apach的error日志,根据日志记录情况进行处理。要找到自定义的日志文件位置,
1、请用文本编辑器打开 gedit /etc/httpd/conf/httpd.conf,然后查找 ServerRoot,该参数显示了 Apache Web 服务器目录树的顶层,日志文件和配置都位于该目录树中。例如:

ServerRoot "/etc/httpd"

2、请用文本编辑器打开 gedit /etc/httpd/conf.d/ssl.conf,然后,查找 ErrorLog 开头的行,该行指出了 Apache Web 服务器将错误日志写到了哪里去。注意,指定的位置是 ServerRoot 值的相对位置。例如:

ErrorLog logs/ssl_error_log

结合上面的两个指令,可以获得完整的ssl访问的错误日志路径,默认情况下该路径就是: /etc/httpd/logs/ssl_error_log
在全新安装的Apache中,这是一个到 /var/log/httpd/errorlog 的符号链接。

在实际情况中, ErrorLog 可能指向你 Linux 系统中的任意位置。

2、查看日志文件,定位问题:gedit 日志文件,如gedit /etc/httpd/logs/ssl_error_log

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 11:20:15  更:2022-05-06 11:20:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:55:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码