设为首页 收藏本站
查看: 767|回复: 0

[经验分享] 如何在不卸载现有OpenSSL的情况下源码安装配置新版OpenSSL+Apache

[复制链接]

尚未签到

发表于 2017-1-14 09:25:25 | 显示全部楼层 |阅读模式
  最近遇到一个问题,需要去安装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)



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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-328178-1-1.html 上篇帖子: Apache Tomcat 5.5配置-多域名绑定与虚拟目录设置 下篇帖子: 百度、新浪、Mixi、Apache社区赞助的开源key-value分布式存储系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表