pythonopenssl
1. python中的ssl error怎麼解決
python安裝完畢後,提示找不到ssl模塊:
[root@localhost ~]# python2.7.5
Python 2.7.5 (default, Jun 3 2013, 11:08:43)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import ssl
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
File "/usr/local/python27/lib/python2.7/ssl.py", line 60, in <mole>
import _ssl # if we can't import it, let the error propagate
ImportError: No mole named _ssl
>>>
2. 查看openssl安裝包,發現缺少openssl-devel包
[root@localhost ~]# rpm -aq|grep openssl
openssl-0.9.8e-20.el5
openssl-0.9.8e-20.el5
[root@localhost ~]#
3. yum安裝openssl-devel
[root@localhost ~]# yum install openssl-devel -y
#查看安裝結果
[root@localhost ~]# rpm -aq|grep openssl
openssl-0.9.8e-26.el5_9.1
openssl-0.9.8e-26.el5_9.1
openssl-devel-0.9.8e-26.el5_9.1
openssl-devel-0.9.8e-26.el5_9.1
4. 重新編譯python
#修改Setup文件
vi /usr/software/Python-2.7.5/Moles/Setup
#修改結果如下:
# Socket mole helper for socket(2)
_socket socketmole.c timemole.c
# Socket mole helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
5. 重新編譯
make
make install
6. 測試,已可正常使用。
[root@localhost ~]# python2.7.5
Python 2.7.5 (default, Jun 3 2013, 14:56:13)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import ssl
>>>
2. python爬蟲如何驗證自簽名證書
python爬蟲驗證自簽名證書步驟如下:脊攔旦
1、下載並導入證書。
2、關聯好證書內容和相應的私鑰櫻擾。
3、用openssl提供的函數或者其他相關工具對衡纖證書進行驗證。
3. 如何驗證在Python SSL證書
importos
importglob
fromOpenSSL.SSLimportContext,TLSv1_METHOD,VERIFY_PEER,VERIFY_FAIL_IF_NO_PEER_CERT,OP_NO_SSLv2
fromOpenSSL.cryptoimportload_certificate,FILETYPE_PEM
fromtwisted.python.urlpathimportURLPath
fromtwisted.internet.sslimportContextFactory
fromtwisted.internetimportreactor
fromtwisted.web.clientimportgetPage
certificateAuthorityMap={}
forcertFileNameinglob.glob("/etc/ssl/certs/*.pem"):
#,solet'smakesureit'sreal.
ifos.path.exists(certFileName):
data=open(certFileName).read()
x509=load_certificate(FILETYPE_PEM,data)
digest=x509.digest('sha1')
#Now,de-.
certificateAuthorityMap[digest]=x509
(ContextFactory):
def__init__(self,hostname):
self.hostname=hostname
isClient=True
defgetContext(self):
ctx=Context(TLSv1_METHOD)
store=ctx.get_cert_store()
.values():
store.add_cert(value)
ctx.set_verify(VERIFY_PEER|VERIFY_FAIL_IF_NO_PEER_CERT,self.verifyHostname)
ctx.set_options(OP_NO_SSLv2)
returnctx
defverifyHostname(self,connection,x509,errno,depth,preverifyOK):
ifpreverifyOK:
ifself.hostname!=x509.get_subject().commonName:
returnFalse
returnpreverifyOK
defsecureGet(url):
returngetPage(url,HTTPSVerifyingContextFactory(URLPath.fromString(url).netloc))
defdone(result):
print'Done!',len(result)
secureGet("https://google.com/").addCallback(done)
reactor.run()
這個驗證要安裝Twisted 庫。
當然這樣的庫好多,如:pycurl,requests,M2Crypto
importrequests
requests.get('https://somesite.com',cert='/path/server.crt',verify=True)
4. python環境設置ssl
爬取數據需要用python請求網路數據, https的加密實現依賴openssl
利用源碼直接安裝
安裝zlib庫
安裝openssl到 /usr/local/openssl 目錄,安裝之後,編譯
安裝結孝螞束後執行以下命令
進入/usr/local目錄下,執行以下命令
在/etc/ld.so.conf文件的最後面,添加如下內容:/usr/local/openssl/lib
然後執行以下命令
添加OPESSL的環境變數,在etc/的profile的最後一行,添加:
查看openssl版本
使用源碼按過於繁瑣,如果對軟體版本沒有特殊要求的話可以巧森埋使用yum命令安裝和更新,既方便又快捷
先看下ssl有沒有被引入
報錯是因為python沒有帶--with-ssl 選項編譯
修改Setup.dist文件 (把Setup這個不帶後綴的也一起改了)
修改結果如下:(去掉最後4行的注釋)
切到春春python文件夾下
完成之後
沒有報錯, 大功告成
參考鏈接
ImportError: No mole named _ssl
linux上安裝Openssl步驟詳解
5. python安裝OpenSSL XP32位,from OpenSSL import crypto ImportError: DLL load dailed:找不到指定的模塊
圖片顯示你pyopenssl 模塊本身安裝就有問題,不要把py3.2的模塊安裝到py27上。
先把你安裝的pyopenssl-py32 版本刪掉,如果是安裝包安裝就到程序管理列表裡面刪,如果不記得了就用pip刪, pip 用"easy_install pip" 命令安裝
然後到 https://pypi.python.org/pypi/pyOpenSSL/0.13 這邊下載pyOpenSSL-0.13.winxp32-py2.7.msi 安裝,路徑默認
6. 怎樣用python調用openssl庫中的rsa
#include#include#include#include#includeint main(int argc, char* argv[]){ printf("畢橘姿openssl_test begin\n"); RSA* rsa=NULL; char originstr[]="hello\n"; //這是我們需要加密的原手絕伍租始數據 //allocate RSA structure,首先需要申請一個RSA結構...
7. 求助Python3.6.2 openssl1.0.2l 編譯安裝通不過
環境:centos6.9 x86_64
1.先編譯安裝openssl 1.0.2l
2.再編譯安裝python 3.6.2
make是通過的
8. Centos7.9安裝python3.10
先升級openssl
上面可以看出沒有安裝,所以必須安裝gcc
查看上面的安裝
安裝完畢檢查下是否安裝成功:gcc --version
安裝如下依賴包,復制在xshell上面,shift +insert 粘貼並回車
sudo tar -zxvf Python-3.10.4.tgz 解壓在當前softwarebak目錄
如果是老手,可以直接跳到下面這一處 修改 vim /tmp/softwarebak/Python-3.10.4/Moles/Setup ,然後在回到下一步繼續。
安裝完python後,切換到安裝的bin目錄
1):在Python3.7之後的版本,依賴的openssl,必須要是1.1或者1.0.2之後的版本,或者安裝了2.6.4之後的libressl,linux自帶的openssl版本過低。
2):在編譯之後修改Moles/Setup文件中的部分內容,打開ssl,或者在編譯的時候指定–with-ssl參數(我使用的是前面的方式,後一種方式的真實性有待考究)
修改 vim /tmp/softwarebak/Python-3.10.4/Moles/Setup
shift+g 跳轉到末尾 然後在末尾粘貼如下內容,wq保存退出
或者如下,最好是有用上面那種粘貼,我是沒出錯的。
接著如下操作
升級pip3
注意是使用「pip3」去升級。
升級pip過後目錄會多出來一個pip,也可以做一下軟鏈接也可以不用。我虛擬機/usr/bin下面並沒有pip,上面我軟鏈接了一個pip3以後就用這個.
設置pip源
第一種:一般用戶
第2種:全局可使用 /etc/pip.conf
install_openssl.sh
參考文獻
https://cloud.tencent.com/developer/article/1754597
https://blog.csdn.net/qq_41580613/article/details/119382214
9. python openssh安裝失敗怎麼解決
python openssh安裝失敗怎麼解決?方法如下:
1、【下載安裝包】:由於openssh依賴於openssl庫,所以在安裝openssh前要先安裝openssl庫(我用的是openssh-7.3p1.tar.gz 和openssl-1.0.1h.tar.gz)
2、【切換到root用戶】:切換到root用戶-執行命令:su root
3、【解壓OpenSSL安裝包】:進入安裝包所在目錄,通過linux自帶的工具tar進行解壓,執行命令為:tar -zxvf openssl-1.0.1h.tar.gz
4、【配置安裝變數】:打開解壓後的目錄,執行命令:cd openssl-1.0.1h;配置安裝環境-執行命令:./configure
相關推薦:《Python基礎教程》
5、【編譯源碼】:在解壓目錄進行編譯,執行命令:make
6、【安裝openssl】:安裝,執行命令:make install
7、【解壓openssh安裝包】:進入安裝包所在目錄,執行命令:tar -zxvf openssh-7.3p1.tar.gz
8、【配置安裝變數】:打開解壓後的目錄,執行命令:cd openssh-7.3p1;配置安裝環境,執行命令:./configure --prefix=/usr/local/servers/openssh,「/usr/local/servers/openssh」是安裝路徑,可改為自己想安裝的路徑 。
9、【編譯源碼】:在解壓目錄進行編譯,執行命令:make
此處執行編譯時可能報error: *** zlib.h missing - please install first or check config.log ***"這是由於缺少zlib-devel所致,只需安裝zlib-devel即可,執行命令:yum install zlib-devel;
還有可能會包"OpenSSL headers missing - please install first or check config.log ***"的錯誤,這是缺少openssl-devel所致,只需安裝openssl-devel即可,執行命令:yum install openssl-devel
10、【安裝openssh】:安裝,執行命令:make install
11、【啟動openssh服務】:啟動sshd服務,只需命令:service sshd start
12、【配置sshd服務】修改配置文件 /etc/ssh/sshd_config
Port 22
Protocol 2
PermitRootLogin yes
去掉這三行的注釋 ,最後一個是允許root用戶直接使用sshd服務登錄伺服器的!
重新啟動sshd服務,執行命令:service sshd restart
設置sshd為系統自動啟動,執行命令 chkconfig --level 35 sshd on
13、【測試】執行命令:ssh localhost 如果讓輸入密碼,則說明安裝成功。