`
langzhiwang888
  • 浏览: 183510 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

如何在不卸载现有OpenSSL的情况下源码安装配置新版OpenSSL+Apache

 
阅读更多

最近遇到一个问题,需要去安装OpenSSL1.0.1c,但是Ubuntu10.04和11.04都只支持0.9.8版本的OpenSSL包。本来想卸载OpenSSL再安装新版本的。我在Ubuntu11.04上引入了12.04的源,直接Upgrade旧版OpenSSL,并安装了几个新版本的依赖包,结果意想不到的事情发生了,我的virtualbox虚拟机软件不能运行了,提示错误,(failed to create virtualbox object!)死活都没法搞定。猜测是由于升级了一些依赖库后发生了故障,至此对预编译之软件包失望至极。


今天闲来无事,决定无论如何要试试源码编译OpenSSL,并和Apache协同工作。我参考了网上的一些文章后开始动手实践。

首先是编译OpenSSL,这个很简单。

./config prefix=/usr/local/openssl && make install

本来我还想卸载旧版本的OpenSSL的,后来放弃了,因为:

sudo apt-get remove openssl [sudo] password for **: Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: libqimageblitz4 ijsgutenprint libotr2 language-pack-kde-en quassel-data libvncserver0 amarok-common libaccess-bridge-java-jni libflac++6 language-pack-kde-zh-hans libaccess-bridge-java libplasma-geolocation-interface4 language-pack-kde-en-base plasma-widget-kimpanel-backend-ibus k3b-data libqtscript4-core python-qt4-dbus libqtscript4-gui libqtscript4-uitools libindicate-qt0 libpoppler-qt4-3 libzip1 openoffice.org-l10n-zh-cn libqtscript4-sql ksysguardd libqtscript4-xml openoffice.org-l10n-en-gb libqca2-plugin-ossl libepub0 libtag-extras1 liblastfm0 libqtscript4-network language-pack-kde-zh-hans-base libmsn0.3 Use 'apt-get autoremove' to remove them. The following packages will be REMOVED: akonadi-server akregator amarok amarok-utils apport-kde apt-transport-https apturl apturl-kde ark bluez-cups ca-certificates ca-certificates-java couchdb-bin cups cups-driver-gutenprint default-jre default-jre-headless desktopcouch dolphin dragonplayer evolution-couchdb foo2zjs foomatic-db foomatic-db-engine foomatic-db-gutenprint freespacenotifier gdebi-kde ghostscript-cups gnupg-curl gwenview gwibber gwibber-service hpijs-ppds hplip icedtea-6-jre-cacao icedtea-netx install-package jockey-kde k3b kaddressbook kamera kate kbluetooth kcalc kcm-gtk kcm-touchpad kde-l10n-engb kde-l10n-zhcn kde-window-manager kde-zeroconf kdebase-bin kdebase-runtime kdebase-workspace kdebase-workspace-bin kdebase-workspace-data kdebase-workspace-kgreet-plugins kdegraphics-strigi-plugins kdelibs-bin kdelibs5 kdemultimedia-kio-plugins kdepasswd kdepim-groupware kdepim-kresources kdepim-runtime kdepim-strigi-plugins kdepim-wizards kdepimlibs5 kdesudo kdm kerneloops-daemon kfind khelpcenter4 klipper kmag kmail kmix kmousetool knm-runtime knotes konqueror konqueror-nsplugins konsole kontact kopete kopete-message-indicator korganizer kpackagekit kppp krdc krfb ksnapshot ksysguard ksystemlog ktimetracker kubuntu-debug-installer kubuntu-desktop kubuntu-konqueror-shortcuts kubuntu-notification-helper kvkbd kwalletmanager language-selector-qt libakonadiprivate1 libcurl3 libcurl3-gnutls libk3b6 libk3b6-extracodecs libkcddb4 libkdcraw8 libkdecorations4 libkdepim4 libkexiv2-8 libkfontinst4 libkipi7 libkleo4 libkonq5 libkonqsidebarplugin4 libkopete4 libkpgp4 libkscreensaver5 libksgrd4 libksieve4 libksignalplotter4 libkwineffects1 libkworkspace4 libmimelib4 libokularcore1 libplasma-applet-system-monitor4 libplasma3 libplasmaclock4 libplasmagenericshell4 libprocesscore4 libprocessui4 libraptor1 librasqal2 librdf0 libsolidcontrol4 libsoprano4 libtaskmanager4 libweather-ion4 network-manager-kde okular okular-extra-backends openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib openoffice.org-base-core openoffice.org-calc openoffice.org-core openoffice.org-draw openoffice.org-emailmerge openoffice.org-gnome openoffice.org-gtk openoffice.org-help-en-gb openoffice.org-help-en-us openoffice.org-help-zh-cn openoffice.org-impress openoffice.org-kde openoffice.org-math openoffice.org-style-oxygen openoffice.org-writer openprinting-ppds openssl packagekit packagekit-backend-apt plasma-dataengines-addons plasma-dataengines-workspace plasma-desktop plasma-scriptengine-javascript plasma-scriptengine-python plasma-widget-facebook plasma-widget-folderview plasma-widget-kimpanel plasma-widget-kubuntu-feedback plasma-widget-message-indicator plasma-widget-quickaccess plasma-widgets-addons plasma-widgets-workspace polkit-kde-1 printer-applet pxljr python-desktopcouch python-desktopcouch-records python-kde4 python-pycurl python-software-properties python-ubuntuone-client python-uno quassel software-properties-gtk software-properties-kde soprano-daemon splix ssl-cert system-config-printer-kde systemsettings ubuntu-desktop ubuntuone-client update-manager-kde usb-creator-kde userconfig xul-ext-ubufox 0 upgraded, 0 newly installed, 201 to remove and 0 not upgraded. After this operation, 823MB disk space will be freed. Do you want to continue [Y/n]?

这么多软件包,不是逼老子把整个系统都卸载掉么!!!
我使用了几个技巧来处理这个问题
首先是把新版本OpenSSL的安装路径加入$PATH

sudo gvim ~/.bashrc

在文件末尾加上:

PATH="$PATH:/usr/local/openssl/bin:" export PATH

然后保存
将/usr/bin/openssl改名

/usr/bin$ sudo mv openssl openssl0.9.8

这样的就可以在命令行中直接使用新版的OpenSSL了

$ openssl version -a OpenSSL 1.0.1c 10 May 2012 built on: Sun Jul 22 20:43:26 CST 2012 platform: linux-elf options: bn(64,32) rc4(8x,mmx) des(ptr,risc1,16,long) idea(int) blowfish(idx) compiler: gcc -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM OPENSSLDIR: "/usr/local/openssl/ssl"

变更include头文件:

/usr/include$ sudo mv openssl openssl0.9.8

/usr/include$ sudo cp -r /usr/local/openssl/include ./

还需要重新编译Apache才能使用新版的OpenSSL

$ ./configure --prefix=/usr/local/apache2.4 --with-layout=Apache

--enable-modulues=most --enable-mods-shared=all --with-mpm=prefork

  --with-ssl=/usr/local/openssl

注意最后一句是启用新版OpenSSL的关键
然后就是套路了,make && make install
配置……
然后测试一下,证明已经可以用的一个证据是:

./ab -t 5 -c 100 -n 20000 https://127.0.0.1/index.html This is ApacheBench, Version 2.4 (OpenSSL 1.0.1c 10 May 2012)

看来以后要多用源码安装,少用系统预编译的包,不然可更新软件可真是麻烦呀
分享到:
评论

相关推荐

    linux 安装Apache+openssl 过程

    在安装好apr、apr-util、pcre以及OpenSSL之后,就可以开始安装Apache了。首先下载Apache的源码包,解压并配置。配置时,需要指定之前安装的apr、apr-util、pcre以及OpenSSL的路径,以及是否启用SSL模块和其他选项。...

    CentOS7下源码编译配置Apache2.4+MySQL5.6+PHP71

    在本文中,我们将深入探讨如何在CentOS 7操作系统上通过源代码编译来安装Apache 2.4、MySQL 5.6和PHP 7.1。这个过程对于那些希望自定义软件配置或在没有预装包的环境中部署这些服务的系统管理员来说非常有用。 首先...

    win7 apache+openssl 安装

    在本文中,我们将详细探讨如何在Windows 7操作系统上安装Apache web服务器并集成OpenSSL库。这个过程对于那些需要在本地环境中搭建支持HTTPS安全连接的Web服务器的人来说是至关重要的。我们将按照以下步骤进行: 1....

    apache+php源码

    在IT行业中,构建一个高效的Web服务器环境是至关重要的,尤其是对于开发者来说,了解如何在Linux系统上手动安装和配置Apache和PHP源码是一项基础技能。本篇将详细讲解如何在CentOS系统上利用源码安装Apache 2.4.38和...

    Gzip+Rewrite+Openssl安装

    1. 下载openssl源码包: ```bash cd /usr/local/src wget https://www.openssl.org/source/openssl-1.0.1q.tar.gz ``` 2. 解压并进入源码目录: ```bash tar -zxvf openssl-1.0.1q.tar.gz cd openssl-1.0.1q `...

    linux下安装配置apache+php.pdf

    在Linux环境下,构建一个高效的Web服务器通常涉及到安装和配置Apache HTTP服务器和PHP解析器。这份文档详细阐述了如何在Linux上使用YUM包管理器以及编译源代码的方式来完成这一过程。 首先,我们关注YUM安装的方法...

    linux系统 Apache http 安装源码

    5. **启动和配置Apache**:安装完成后,Apache的可执行文件通常位于`/usr/local/apache2/bin/httpd`,可以通过`sudo /usr/local/apache2/bin/apachectl start`来启动服务器。然后,配置文件`httpd.conf`位于`/usr/...

    centos7如何以源码方式安装Apache

    ### CentOS 7 以源码方式安装 Apache 及其配置详解 #### 一、源码安装 Apache 的背景及优势 在 CentOS 7 中,通过源码方式安装 Apache HTTP Server 是一种常见且灵活的方法。这种方式相较于使用包管理工具如 `yum`...

    apache安装并配置HTTPS

    这些库是Apache运行的基础,因此在安装Apache之前必须先安装它们。 1. **安装apr和apr_util** - 下载apr和apr_util的源码包。 - 解压源码包,进入目录。 - 使用`./configure`命令进行配置,然后运行`make`和`...

    Linux+Apache+Nginx+Mysql+PHP完美配置教程

    【Linux+Apache+Nginx+Mysql+PHP完美配置教程】 在配置Linux服务器以支持LAMP(Linux, Apache, MySQL, PHP)环境时,我们需要进行一系列的准备工作和安装步骤。以下是一个详细的步骤指南: **一、准备工作** 1. *...

    apache + php 的windows安装配置

    在Windows环境下,Apache和PHP的集成安装与配置是许多开发者在初涉Web开发时的必经之路。Apache作为流行的开源HTTP服务器,而PHP则是一种广泛使用的服务器端脚本语言,两者结合可以创建动态、交互式的网页。下面我们...

    centos 下apache+svn安装.docx

    总结来说,CentOS上Apache和Subversion的安装涉及下载源码、安装依赖、编译安装软件、配置Apache以支持SVN以及创建和配置版本库。整个过程需要对Linux系统、Apache服务器以及Subversion有一定了解,但遵循上述步骤,...

    apache+ssl安装

    - 检查apr-util的安装情况。 - **pcre-configforlibpcrenotfound**: - 确认pcre的安装路径是否正确。 **2. 功能模块加载** - 进入Apache源码包,添加所需的模块: - `cd httpd-2.2.18/modules` - 使用`apxs`...

    apache2.2.25_OpenSSL1.0.1u.zip(win32版本)

    我在win10下对Apache 2.2.25 源码增加了OpenSSL1.0.1.u的模块并重新编译,从而解决了原始的Apache 2.2.25 不支持 TLSv1.2 的问题。该版本在Windows Server 2008 R2 下可以正常运行。

    openssl-1.0.2k

    1. **获取源码**:下载openssl-1.0.2k的源代码压缩包,解压到工作目录。 2. **配置**:运行`./config`命令,配置编译选项。根据系统和需求,可能需要指定特定的编译器、库路径或启用/禁用某些特性。 3. **编译**:...

    windows下apache ssl配置

    1. **下载并安装OpenSSL**:Apache本身并不包含SSL功能,所以需要先下载并安装OpenSSL工具,它提供了生成SSL证书所需的命令行工具。可以从OpenSSL官方网站获取最新版本的安装程序。 2. **生成SSL证书**:在命令行中...

    apache2.2.19+php5.3.2+mysql5.5.13下安装symfony配置

    在本文中,我们将详细讨论如何在特定版本环境下——Apache 2.2.19、PHP 5.3.2 和 MySQL 5.5.13 下安装并配置Symfony框架。 首先,让我们了解这三个核心组件: 1. **Apache 2.2.19**:Apache HTTP Server 2.2.19 是...

    Linux源码安装MySQL+MySQL主从+Nginx+Nginx负载均衡+redis+php+phpredis+tomcat

    3. 下载并解压Nginx和openssl源码包,然后进行配置和编译: ```bash cd /usr/local mkdir nginx tar -zxvf nginx-1.20.2.tar.gz -C /usr/local/nginx tar -zxvf openssl-1.0.2l.tar.gz -C /usr/local/src cd /...

    apache+mysql+php部署

    源码安装时,配置文件位于 `/usr/local/apache2/conf/httpd.conf`,模块配置在 `/usr/local/apache2/conf/extra/`。 - 关键配置项: - `ServerRoot`:Apache 安装的根目录。 - `PidFile`:主进程的 PID 文件位置...

Global site tag (gtag.js) - Google Analytics