Linux apache自建证书搭建https

前言

搭建https有两种方式,分为单向认证和双向认证。单向认证就是传输的数据加密过了,但是不会校验客户端的来源,也就只有客户端验证服务端证书。

单向认证

1、安装mod_ssl

yum -y install mod_ssl

2、HTTP 服务器上配置mod_ssl

2.1、进入http服务器配置文件所在目录

cd /etc/pki/tls/certs/

2.2、建立服务器密钥

[[email protected] certs]# make server.key           #建立服务器密钥
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
...............................+++
........+++
e is 65537 (0x10001) 
Enter pass phrase:                        #设置一个口令
Verifying - Enter pass phrase:             #确定口令
[[email protected] certs]#

[[email protected] certs]# openssl rsa -in server.key -out server.key    #从密钥中删除密码(以避免系统启动后被询问口令)

2.3、建立服务器公钥

[[email protected] certs]# make server.csr              #生成服务器公钥
umask 77 ; /usr/bin/openssl req -utf8 -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN                       #填入国家代码 例如CN
State or Province Name (full name) []:Shanghai              #省 例如 Shanghai
Locality Name (eg, city) [Default City]:Shanghai            #市 例如 Shanghai
Organization Name (eg, company) [Default Company Ltd]:NOC   #组织名  例如NO  (任意)
Organizational Unit Name (eg, section) []:Newegg            #组织单位名 例如 New (任意)
Common Name (eg, your name or your server‘s hostname) []:NOC  #通用名 例如 NO (任意)
Email Address []:[email protected]                               # 电子邮箱

Please enter the following ‘extra‘ attributes
to be sent with your certificate request
A challenge password []:                             # 不填,直接回车
An optional company name []:                         # 不填,直接回车
[[email protected] certs]# 

2.3、建立服务器证书

openssl x509 -in server.csr -out server.pem -req -signkey server.key -days 365

Signature ok
subject=/C=CN/ST=Shanghai/L=Shanghai/O=NOC/OU=Newegg/CN=NOC/[email protected]
Getting Private key

chmod 400 server.*   # 修改权限为400

2.4、设置SSL

vim /etc/httpd/conf.d/ssl.conf# General setup for the virtual host, inherited from global configuration
DocumentRoot "/var/www/html"         # 去掉此参数的注释‘#’

systemctl restart httpd              # 重启httpd 服务, 

验证:  通过https 打开网页查看是否成功

代理(强制http请求跳转到https)

<Directory "/var/www/html">     # 此类容最后增加下面三行RewriteEngine on                              # 开启重定向擎设置为on,就是让url重写生效RewriteCond %{SERVER_PORT} !^443$                # 设置规则,端口重定向成 443 端口RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]  # ^(.*)?$是一个正则表达式,意思是对所有请求都重定向到https://....

其它代码解释

RewriteCond %{REQUEST_FILENAME} !-f          #如果文件存在,就直接访问文件,不进行下面的RewriteRule.

RewriteCond %{REQUEST_FILENAME} !-d          # 如果目录存在就直接访问目录不进行RewriteRule

RewriteCond $1 !^(index\.php|images|robots\.txt)    #配置url重写规则,!^(index\.php|images|robots\.txt) 这个正则表达式指明了哪些文件不需要重                                                         写,而是直接访问;

 

zabbix 修改https 并实现http跳转到https

vim /etc/httpd/conf/httpd.conf    # 添加如下内容

<Directory "/usr/share/">   # 这里的路径是 zabbix 的路径  /usr/share/zabbix

Options Indexes FollowSymLinks
Require all granted
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]

</Directory>

原文地址:https://www.cnblogs.com/surplus/p/11423258.html

时间: 2024-10-31 16:42:58

Linux apache自建证书搭建https的相关文章

实战:搭建CA认证中心,使用CA证书搭建HTTPS

CA认证中心服务端:xuegod63.cn                         IP:192.168.0.61客户端                  :xuegod64.cn                         IP:192.168.0.62CA:Certificate Authority的缩写,通常翻译成认证权威或者认证中心,主要用途是为用户发放数字证书.认证中心(CA)的功能有:证书发放.证书更新.证书撤销和证书验证.CA证书作用:身份认证--->数据的不可否认性

Lamp(linux+apache+mysql+php)环境搭建

Lamp(linux+apache+mysql+php)环境搭建 1.安装apache2:sudo apt-get installapache2 安装完毕后.执行例如以下命令重新启动apache:sudo/etc/init.d/apache2 restart,在浏览器中输入http://localhost或者http://127.0.0.1,会看到"It works!"说明apache成功安装. 2.安装php:sudoapt-get install libapache2-mod-ph

使用PHP SoapClient 处理自建证书的https服务

使用PHP的SoapClient处理认证过的https webservice是完全没有问题的.但是如果遇到一些不去认证https而是用自建的证书来做https的时候就会有问题,一般会报"Could not connect to host."错误. 解决方式之一就是试SoapClient忽略https的ssl认证,直接跳过认证的环节,直接贴代码吧 $context = stream_context_create( array (     'ssl' => array (      

自建CA证书搭建https服务器

1.理论知识 https简介 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL. 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息.HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接

apache配置CA证书通过https通信

Apache Httpd 2.2 实现https加密通讯 实际生产中CA证书一般是向一些专业认证的国际机构来进行申请的.我们会模拟使用OpenSSL生成的证书,来实现Apache的安全加密通讯,这与实际生产中是类似的. 实验环境准备 主机A:172.16.0.57-------->httpd服务器 主机B:172.16.0.58--------->CA openssl 接下来,我们分两个部分进行,在主机B上搭建CA证书环境,然后在主机A上配置证书环境. 主机B上搭建CA证书环境 CA证书环境中

[转] Nginx 配置 SSL 证书 + 搭建 HTTPS 网站教程

一.HTTPS 是什么? 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定.HTTPS连接经常被用于万维网上的交易支付和企业信息系统中敏感信息的传输.HTTPS不应与在RFC 2660中定义的安全超文本传输协议(S-HTTP)相混. HTTPS 目前已经是所有注重隐私和安全的网站的首选,随着技术的不断发展,HTTPS 网站已不再是

Nginx 配置 SSL 证书 + 搭建 HTTPS 网站教程

一.HTTPS 是什么? 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定.HTTPS连接经常被用于万维网上的交易支付和企业信息系统中敏感信息的传输.HTTPS不应与在RFC 2660中定义的安全超文本传输协议(S-HTTP)相混. HTTPS 目前已经是所有注重隐私和安全的网站的首选,随着技术的不断发展,HTTPS 网站已不再是

自制证书搭建https服务

第一步,自制CA证书和Server证书,私钥 自制CA私钥 openssl genrsa -des3 -out ca.key 4096 自制CA证书 openssl req -new -x509 -days 3650 -key ca.key -out ca.crt 自制Server私钥,生成免密码版本 openssl genrsa -des3 -out server.key 4096 openssl rsa -in server.key -out server.nosecret.key 制作cs

nginx 自建证书以https 访问

1.生成自签名ssl证书 mkdir /ssl创建个文件夹放ssl证书openssl genrsa -des3 -out domain.key 1024#生成RSA密钥(过程需要设置一个密码,记住这个密码)openssl rsa -in ylc520.key -out ylc520_nopass.key#拷贝一个不需要输入密码的密钥文件openssl req -new -key domain.key -out domain.csr#生成一个证书请求这里会提示输入国家,地区组织,email等信息.