发信人: wienne(小荔)
整理人: blainelinar(2001-07-19 20:53:45), 站内信件
|
gcc
ftp://ftp.sunfreeware.com/pub/freeware/sparc/7/gcc-2.95.2-sol7-sparc-local.gz
gzip
ftp://ftp.sunfreeware.com/pub/freeware/sparc/7/gzip-1.3-sol7-sparc-local
make
ftp://ftp.sunfreeware.com/pub/freeware/sparc/7/make-3.78.1-sol7-sparc-local.gz
perl
ftp://ftp.sunfreeware.com/pub/freeware/sparc/7/perl-5.005_03-sol7-sparc-local.gz
openssl-0.9.6
ftp://ftp.happysize.co.jp/mirror/openssl/source/openssl-0.9.6.tar.gz
mod_ssl-2.8.0-1.3.17
http://www.modssl.org/source/mod_ssl-2.8.0-1.3.17.tar.gz
apache_1.3.17
http://www.apache.org/dist/apache_1.3.17.tar.gz
php-4.0.4pl1
在www.mysql.com网站上可下载到gtar-solaris-4.1.4-sparc.gz
gtar zvxf filename
用此方法来解开tar.gz文件
Mysql的安装最简单,在他的网站上可下载到已编译好的sparc版本的,要用
gtar来解开,否则会报错,是因为soliras的tar有bug。
解开后,比如解开到/temp/目录,cd /temp,下运行命令
pkgadd -d ./mysql-3.23.32-sun-solaris2.7。系统就把mysql安装到
/usr/local/mysql-3.23.32-sun-solaris2.7-sparc目录下
cd /usr/local/mysql-3.23.32-sun-solaris2.7-sparc/bin
运行mysql命令,就可进入mysql了。在安装时已自动把mysql启动了。
手动启动的方法是运行mysqld。
-----------------------------------------------------------------------
安装方法
gtar zxf mod_ssl-2.8.0-1.3.17.tar.gz
gtar zxf openssl-0.9.6.tar.gz
gtar zxf apache_1.3.17.tar.gz
gtar zxf php-4.0.4pl1.tar.gz
cd /temp/mod_ssl-2.8.0-1.3.17
./configure --with-apache=/temp/apache_1.3.17
cd /temp/apache_1.3.17
SSL_BASE=/temp/openssl-0.9.6 ./configure --enable-module=ssl --enable-module=so
make
make install
----------------------------------------
/usr/local/apache/bin/apachectl start
start httpd on 80
/usr/local/apache/bin/apachectl startssl
start httpd on 443
----------------------------------------
cd /temp/php-4.0.4pl1
./configure --enable-track-vars --with-apxs=/usr/local/apache/bin/apxs
make
make install
cd /usr/local/apache/conf
编辑 httpd.conf
修改 ServerName 为你电脑的主机名
到此你的电脑已可以运行Apache了,但不能用SSL。因为在
apache的配置文件httpd.conf中有两行
SSLCertificateFile /usr/local/apache/ca/server.crt
SSLCertificateKeyFile /usr/local/apache/ca/server.key
指定的文件要存在,正确。
在此安装方法中,不知为什么openssl创建数字签名时报rand错误
在www.modssl.org网站上有一个已编译好的
Apache_1.3.14-mod_ssl_2.7.2-openssl_0.9.6-WIN32.zip文件
你可以安装在win2k下。openssl可正常使用。
如果谁要那两个文件的话可发邮件给我。key是QuakeIII。
在用/usr/local/apache/bin/apachectl startssl启动apache时
会提示你输入的。
用浏览器看时,会出现一些提示,说‘安全证书’有什么什么的问题
是因为没有安装客户端的安全证书。在win32下用以下命令进行创建
引用原文
\\\\\\\\\\\\\\\\\\
为你的CA创建一个RSA私用密钥( 被Triple-DES加密并且进行PEM格式化的):
openssl genrsa -des3 -out ca.key 1024
利用CA的RSA密钥创建一个自签署的CA证书(X509结构)(输出将是PEN格式的):
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
安装ca.crt
在win32下运行openssl时说找不到openssl.cnf文件
这里给出一个openssl.cnf的例子
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#
# RANDFILE = $ENV::HOME/.rnd
# oid_file = $ENV::HOME/.oid
# oid_section = new_oids
pfad = /usr/local/openssl
[ new_oids ]
# We can add new OIDs in here for use by 'ca' and 'req'.
# Add a simple OID like this:
# testoid1 = 1.2.3.4
# Or use config file substitution like this:
# testoid2 = ${testoid1}.5.6
####################################################################
[ ca ]
default_ca = Server_CA # The default ca section
####################################################################
[ Root_CA ] # Abschnitt fuer eine Root CA
dir = $pfad/PCA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/PCAcert.pem # The CA certificate
serial = $dir/serial # The current serial number
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/PCAkey.pem # The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = PCA_ext # The extentions to add to the cert
#crl_extensions = crl_ext # Extensions to add to CRL
default_days = 730 # how long to certify for
default_crl_days = 30 # how long before next CRL
default_md = md5 # which md to use.
preserve = no # keep passed DN ordering
# A few difference way of specifying how similar the request should look
# For type CA, the listed attributes must be the same, and the optional
# and supplied fields are just that :-)
policy = policy_match
[ Server_CA ] # Abschnitt fuer eine Server CA
dir = $pfad/SCA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/SCAcert.pem # The CA certificate
serial = $dir/serial # The current serial number
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/SCAkey.pem # The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = SCA_ext # The extentions to add to the cert
#crl_extensions = crl_ext # Extensions to add to CRL
default_days = 365 # how long to certify for
default_crl_days = 30 # how long before next CRL
default_md = md5 # which md to use.
preserve = no # keep passed DN ordering
policy = policy_anything
[ User_CA ] # Abschnitt fuer eine User CA
dir = $pfad/UCA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/UCAcert.pem # The CA certificate
serial = $dir/serial # The current serial number
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/UCAkey.pem # The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = UCA_ext # The extentions to add to the cert
#crl_extensions = crl_ext # Extensions to add to CRL
default_days = 365 # how long to certify for
default_crl_days = 30 # how long before next CRL
default_md = md5 # which md to use.
preserve = no # keep passed DN ordering
policy = policy_anything
# For the CA policy
# Auch hier gilt:
# ... you must list all acceptable 'object' types.
[ policy_match ]
countryName = match
stateOrProvinceName = supplied
localityName = optional
organizationName = supplied
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
# For the 'anything' policy
# At this point in time, you must list all acceptable 'object'
# types.
[ policy_anything ]
countryName = match
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
####################################################################
[ req ]
default_bits = 1024
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
x509_extensions = v3_ca # The extentions to add to the self signed cert
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = DE
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
#stateOrProvinceName_default = Schleswig-Holstein
localityName = Locality Name (eg, city)
#localityName_default = Kiel
0.organizationName = Organization Name (eg, company)
#0.organizationName_default = Universitaet Kiel
# we can do this but it is not needed normally :-)
#1.organizationName = Second Organization Name (eg, company)
#1.organizationName_default = World Wide Web Pty Ltd
organizationalUnitName = Organizational Unit Name (eg, section)
#organizationalUnitName_default = Studis
commonName = Common Name (eg, YOUR name)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 60
# SET-ex3 = SET extension number 3
[ req_attributes ]
# Das Challenge Password dient dazu, sich bei Verlust des geheimen Schluessels
# gegenueber der Herausgeber-CA fuer einen Zertifikatwiderruf auszuweisen.
# Wird bei Erstellung der Zertifikat-Anforderung erfragt.
challengePassword = A challenge password
challengePassword_min = 4
challengePassword_max = 20
unstructuredName = An optional company name
[ PCA_ext ]
# This goes against PKIX guidelines but some CAs do it and some software
# requires this to avoid interpreting an end user certificate as a CA.
basicConstraints = critical, CA:TRUE
# Moeglich: digitalSignature, nonRepudiation, keyEncipherment,
# dataEncipherment, keyAgreement, keyCertSign,
# cRLSign, encipherOnly, decipherOnly
keyUsage = cRLSign, keyCertSign
# PKIX recommendations
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
# Import the email address.
subjectAltName = email:copy
# Copy subject details
issuerAltName = issuer:copy
# Moeglich: client, server, email, objsign, reserved, sslCA, emailCA, objCA
nsCertType = sslCA, emailCA, objCA
# Hier kann der den folgenden Url's gemeinsame Url-Stamm angegeben werden.
nsBaseUrl = https://192.168.0.79:443/
# Die Seite mit der CA-Policy
nsCaPolicyUrl = http://192.168.0.79/
nsComment = 证书由wienne授权
# Hier kann eine Online-Zertifikatspruefung stattfinden, indem auf die
# Url in der Form ../foo.cgi?aaaa zugegriffen wird. "aaaa" ist dabei
# die ASCII-kodierte Seriennummer des Zertifikats. Dann kann das Zertifikat
# per OpenSSL geprueft werden.
# Zurueckgegeben wird dann eine dezimale 0 oder 1
nsRevocationUrl =
# Nur gueltig in CA-Zertifikaten. Bedeutung nicht ganz klar.
# nsCaRevocationUrl =
# Wird verwendet, um einem Benutzer die Erneuerung seines Zertifikats zu
# erleichtern. Ueblicherweise steckt dahinter ein CGI-Script, auf das per
# HTTP GET in der Form ../foo.cgi?aaaa zugegriffen wird. "aaaa" ist wieder
# Seriennummer. Zurueckgegeben werden kann ein Antrags-Formular zur Erneuerung
# des Zertifikats.
# nsRenewalUrl =
[ SCA_ext ]
# basicConstraints = critical, CA:FALSE
keyUsage = digitalSignature, keyEncipherment
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
subjectAltName = email:copy
issuerAltName = issuer:copy
nsCertType = server
nsBaseUrl = https://192.168.0.79:443/
nsCaPolicyUrl = http://192.168.0.79/
nsComment = This certificate was issued by a Server CA
nsRevocationUrl =
# nsCaRevocationUrl =
# nsRenewalUrl =
[ UCA_ext ]
# basicConstraints = critical, CA:FALSE
keyUsage = digitalSignature, keyEnciphermen, keyAgreement
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
subjectAltName = email:copy
issuerAltName = issuer:copy
nsCertType = client, email
nsBaseUrl = https://192.168.0.79:443/
nsCaPolicyUrl = http://192.168.0.79
nsComment = This certificate was issued by a User CA
nsRevocationUrl =
# nsCaRevocationUrl =
# nsRenewalUrl =
[ v3_ca ]
basicConstraints = critical, CA:TRUE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer:always
keyUsage = cRLSign, keyCertSign
nsCertType = sslCA, emailCA, objCA
subjectAltName = email:copy
issuerAltName = issuer:copy
nsBaseUrl = https://192.168.0.79:443/
nsCaPolicyUrl = http://
nsComment = 证书由wienne授权
nsRevocationUrl =
# nsCaRevocationUrl =
# nsRenewalUrl =
# RAW DER hex encoding of an extension: beware experts only!
# 1.2.3.5 = RAW:02:03
# You can even override a supported extension:
# basicConstraints = critical, RAW:30:03:01:01:FF
[ crl_ext ]
# CRL extensions.
# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
issuerAltName = issuer:copy
authorityKeyIdentifier = keyid:always,issuer:always
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OK
在编译进出现了非常多的问题,主要是因为用户的环境变量不全
比如编译时找不到什么什么命令,你把它找到后,把路径加到里面
执行,有时要把解开的编译文件全部删除,再解一次源文件。再编译。
PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/ccs/bin;export PATH
这里面PHP还没有编译GD库,其实也可以,只是我还没编译成功。
GD编译时出错,解决不了。
有什么问题可联系我,看我能不能帮忙大家。
搞不定真是不爽
正常运行之后的感觉真是爽!
跳起来把地踩三下
还是希望哪位高手能帮忙,解决我前面提出的那些问题。
GD编译时出错
Soliras下运行openssl报rand错误
Email:[email protected]
小荔
在安装时参考过的文章
Generate a server.key:
openssl genrsa -des3 -out server.key 1024
Place this file in /etc/ssl
Generate a CSR (Certificate Signing Request):
openssl req -new -key server.key -out server.csr
Place this file in /etc/ssl
Generate an RSA key for your CA (Certificate Authority):
openssl genrsa -des3 -out ca.key 1024
Place this file in /etc/ssl
Generate an x.509 certificate for your CA:
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
Place this file in /etc/ssl
Sign your CSR:
./sign.sh server.crt
sign.sh comes packaged with the OpenSSL source distribution.
========================================================================
为你的Apache服务器创建一个RSA私用密钥(被Triple-DES加密并且进行PEM格式化):
openssl genrsa -des3 -out server.key 1024
用服务器RSA私用密钥生成一个证书签署请求(CSR-Certificate Signing Request)(输出将是PEM格式的):
当OpenSSL提示你“CommonName”时,确保你输入了服务器的FQDN("Fully Qualified Domain Name") ,即,当
你为一个以后用https://www.foo.dom/访问的网站生成一个CSR时,这里输入"www.foo.dom"。
openssl req -new -key server.key -out server.csr
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
为你的CA创建一个RSA私用密钥( 被Triple-DES加密并且进行PEM格式化的):
openssl genrsa -des3 -out ca.key 1024
利用CA的RSA密钥创建一个自签署的CA证书(X509结构)(输出将是PEN格式的):
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
=======================================================================
Edit /var/www/httpd.conf:
In the main section:
<IfDefine SSL>
Listen 80
Listen 443
</IfDefine>
<IfDefine SSL>
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
</IfDefine>
A <VirtualHost> tag for your domain:
<VirtualHost _default_:443>
# General setup for the virtual host
DocumentRoot /home/www/vhost/www.mydomain.net/htdocs
ServerName www.mydomain.net
ServerAdmin [email protected]
ErrorLog logs/error_log
TransferLog logs/access_log
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
SSLCertificateFile /etc/ssl/server.crt
SSLCertificateKeyFile /etc/ssl/server.key
</VirtualHost>
Apache、SSL、MySQL和PHP平滑无缝地安装
原作者:Israel Denis Jr. 译:晏子
--------------------------------------------------------------------------------
目的
我们的目标是安装一个允许我们托管多个网站的web服务器,其中一些是针对电子商务的安全解决方案,而大部
分网站是通过连接一个数据库服务器并且提取其数据的脚本驱动的。
为了这个任务所需的工具是:
Apache-一个网站服务器
Mod_SSL-一个安全套接字层(SSL)的模块
OpenSSL-开放源代码工具箱(mod_ssl所需)
RSARef-仅对美国用户
MySQL-一个数据库服务器
PHP-一种脚本语言
“条条大路通罗马”……因此这只是很多能达到我们要求的配置之一。我选择这样的配置,是因为它是最简单
和最快的一种。选择Mod_SSL/OpenSSL的原因是因为我有它的先前经验,是最快配置和最容易安装的一种。为了
彼此方便地与Apache集成,我选择了PHP和MySQL。记住,Perl能做到你想要做任何工作,然而,PHP对任何想学
习它地程序员来说简单并且容易。
希望你将在结束这个简单的指南后能成功地完成下列目标。
安装并设置MySQL数据库服务器
o 知道怎样检查MySQL服务器的状态
o 知道怎样使用命令行客户程序存取MySQL服务器
o 知道怎样从web存取你的DB服务器
安装并设置具备SSL的Apache网站服务器
o 配置一个简单的虚拟网站
o 知道怎样停止并启动服务器
o 知道怎样做一些基本的主机托管配置
安装并配置服务器端脚本的PHP 4.0超文本预处理器
o 知道怎样编写简单的php代码
o 知道怎样使用php连接一个DB
o 创建一个启用PHP地简单网站与一个数据库沟通
创造一些样本证书用于Apache SSL
o 知道怎样产生一个CSR文件
o 知道怎样加密一个键码
o 知道怎样 签署你自己的证书
本文将覆盖大量的信息。本指南作为一个入门性地的指南,让你步入电子商务、网站脚本和安全套接字层
(SSL)的世界,目的是帮助你建立由存储在数据库中的动态信息驱动的安全网站。
本文绝非是一个详细全面的文档,它当然将有一些错误(希望最小),在你阅读它时请记住这一点。然而,它将
激起你的热情并运行前面提到的产品,希望让你更好理解这些东西是怎样工作的。不需要以前的编程知识,但
假定你有点计算机知识背景。我的目标是编写这个文档以便任何新手能理解我正在谈论的东西。如果我达到了
,那么我做了一件好事。如果你轻而易举地建立了电子商务站点,比我做的更出色:-) 给我一些解释。
假设
本文假设你已经把下列软件安装在你的系统上了。
Perl (最好是ver 5+)
gzip或gunzip
gcc 和 GNU make
如果你没有安装好这些,你将需要采取必要的步骤在解释本文的任何过程前把他们安装好。
你也需要对UNIX命令、HTML、和SQL的一个基本了解。你应该有怎样管理你的Linux机器的一个基本了解。你也
需要一个完全正常的Linux机器,你将在它上面安装软件。当然你将需要在前面列出的必要的软件包以编译源代
码,并且最后,保证你还没有在Linux机器中预装了MySQL、Apache、或PHP。
工作原理
理解在幕后发生了什么是有帮助的。这里是一个过分简化的工作原理,下图和随后的解释目前不是完全正确的
,只是它的一个要点概述:
情况是:我们有一个从一个数据库取出一些数据的网页。John Doe从他的浏览器请求该页,请求被发送给web服
务器,接着调用一个PHP脚本。PHP脚本由PHP预处理器解释并从数据库中取出数据,然后结果由余下的PHP脚本
加工并转化成HTML,做后的HTML被发回用户的浏览器。
---- /************************
源码共享
取之于人
用之于人
************************/ |
|